반응형

백준 126

[Java] 11660 구간 합 구하기 5

문제 M*N개의 수가 N*M 크기의 표에 채워져 있다. (x1, y1)부터 (x2, y2)까지 합을 구하는 프로그램을 작성하시오. (x,y)는 x행 y열을 의미한다. 예를 들어, N=4이고, 표가 아래와 같이 채워져 있는 경우를 살펴보자. 1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 7 여기서 (2,2)부터 (3,4)까지 합을 구하면 3+4+5+4+5+6=27이고, (4,4)부터 (4,4)까지 합을 구하면 7이다. 표에 채워져 있는 수와 합을 구하는 연산이 주어졌을 때, 이를 처리하는 프로그램을 작성하시오. 입력 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차..

Algorithm/BAEKJOON 2023.04.07

[Java] 1546 평균 구하기

문제 세준이는 기말고사를 망쳤다. 그래서 점수를 조작해 집에 가져가기로 결심했따. 일단 세준이는 자기 점수 중 최댓값을 골랐다. 그런 다음 최댓값을 M이라 할 때 모든 점수를 점수/M*100으로 고쳤다. 예를 들어 세준이의 최고점이 70점, 수학 점수가 50점이라면 수학 점수는 50/70*100이므로 71.43점이다. 세준이의 성적을 이 방법으로 계산했을 때 새로운 평균을 구하는 프로그램을 작성하시오. 입력 1번째 줄에 시험을 본 과목의 개수 N이 주어진다. 해당 값은 1,000보다 작거나 같다. 2번째 줄에 세준이의 현재 성적이 주어진다. 해당 값은 100보다 작거나 같은, 음이 아닌 정수이고, 적어도 1개의 값은 0보다 크다. 출력 첫째 줄에 새로운 평균을 출력한다. 실제 정답과 출력값의 절대오차 또..

Algorithm/BAEKJOON 2023.04.04

[Java] 11720 숫자의 합 구하기

문제 N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. 출력 입력으로 주어진 숫자 N개의 합을 출력한다. import java.util.Scanner; public class Main{ public static void main(String args[]){ Scanner scanner = new Scanner(System.in); int N = scanner.nextInt(); String sNum = scanner.next(); char[] cNum = sNum.toCharArray(); int sum = 0; for(int i=0; i

Algorithm/BAEKJOON 2023.04.02

[ C / C++ ] 백준 20301 반전 요세푸스

문제 요세푸스 문제는 다음과 같다. 1$1$번 사람 오른쪽에는 2$2$번 사람이 앉아 있고, 2$2$번 사람 오른쪽에는 3$3$번 사람이 앉아 있고, 계속하여 같은 방식으로 N$N$명의 사람들이 원을 이루며 앉아 있다. N$N$번 사람 오른쪽에는 1$1$번 사람이 앉아 있다. 이제 K$K$(≤N$\leq N$)번 사람을 우선 제거하고, 이후 직전 제거된 사람의 오른쪽의 K$K$번째 사람을 계속 제거해 나간다. 모든 사람이 제거되었을 때, 제거된 사람의 순서는 어떻게 될까? 이 문제의 답을 (N$\boldsymbol{N}$, K$\boldsymbol{K}$)–요세푸스 순열이라고 하며, (7$7$, 3$3$)–요세푸스 순열은 ⟨3,6,2,7,5,1,4⟩$\left$가 된다. 하지만 한 방향으로만 계속 돌아가..

Algorithm/BAEKJOON 2022.05.21

[ C / C++ ] 백준 17478 재귀함수가 뭔가요?

문제 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대학교가 자신과 맞는가에 대한 고민을 항상 해왔다. 중앙대학교와 자신의 길이 맞지 않다고 생각한 JH 교수님은 결국 중앙대학교를 떠나기로 결정하였다. 떠나기 전까지도 제자들을 생각하셨던 JH 교수님은 재귀함수가 무엇인지 물어보는 학생들을 위한 작은 선물로 자동 응답 챗봇을 준비하기로 했다. JH 교수님이 만들 챗봇의 응답을 출력하는 프로그램을 만들어보자. #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; int cnt = 0; v..

Algorithm/BAEKJOON 2022.05.20

[ C / C++ ] 백준 17363 우유가 넘어지면?

문제 유머 감각이 뛰어난 성원이는 매일 재미있는 농담을 준비한다. 오늘 준비한 농담은 바로 이것이다. 우유가 넘어질 때 뭐라고 하게? 답은 "아야"! 깔깔! 친구들의 반응이 심드렁하자, 성원이는 해설을 덧붙였다. "우유"가 세로로 적혀 있는 상자를 왼쪽으로 툭 넘어뜨리면 "아야"가 되잖아? 이게 마치 우유가 넘어져서 아파하는 것 같다는 점이 웃음 포인트야! 그럼에도 불구하고 친구들이 웃지 않자, 성원이는 친구들이 공간지각력이 부족해 상자를 넘어뜨리는 모습을 상상하지 못한다고 생각했다. 그래서 상자를 넘어뜨리는 프로그램을 만들어 친구들에게 결과를 보여주기로 했다. 성원이는 상자에 "우유"가 아니라 다른 그림이 그려져 있어도 프로그램이 잘 동작하기를 원한다. 성원이는 상자의 면을 격자로 나누고 각 칸에 아래..

Algorithm/BAEKJOON 2022.05.19

[ C / C++ ] 백준 16504 종이접기

문제 종이접기와 수학을 좋아하는 주성이는 종이접기와 수학을 한꺼번에 할 수 있는 놀이를 찾아냈다. 바로 N×N 크기를 가지는 색종이의 각 칸에 수를 적어놓고, 색종이를 반으로 접을 때마다 겹치는 부분의 수들을 더하는 것이다. 그리고 이 작업을 색종이를 더는 접을 수 없을 때까지 반복했을 때, 가장 마지막에 남는 수를 구하는 놀이이다. 아래의 예시는 위에서 설명한 놀이의 과정을 2×2 크기의 색종이를 사용하여 상세하게 나타낸 그림이다. 색종이를 왼쪽에서 오른쪽으로 정확히 반을 접는다. 겹치는 두 칸에 있는 수를 서로 더한다. 위 그림에서는 (1, 1)과 (1, 2)의 두 칸이 겹치고, (2, 1)과 (2, 2)의 두 칸도 겹치는 부분이다. 더한 값을 색종이 위에 다시 적는다. 색종이를 아래쪽에서 위쪽으로 ..

Algorithm/BAEKJOON 2022.05.18

[ C / C++ ] 백준 15815 천재 수학자 성필

문제 평행 세계의 성필은 숫자와 연산자를 만든 당대 최고의 수학자이다. 그리고 놀랍게도 이 숫자와 연산자는 현재 우리가 사용하는 것과 같다. 하지만 수식은 연산자가 피연산자 가운데 위치하는 우리와는 다르게 연산자가 피연산자 뒤에 위치한다고 한다. 우리 세계의 식을 성필의 식으로 바꾸는 방법을 간단히 설명하자면 이렇다. 우선 주어진 식을 연산자의 우선순위에 따라 괄호로 묶어준다. 그런 다음에 괄호 안의 연산자를 괄호의 오른쪽으로 옮겨주면 된다. 예를 들어 a+b*c는 (a+(b*c))의 식과 같게 된다. 그다음에 안에 있는 괄호의 연산자 *를 괄호 밖으로 꺼내게 되면 a+bc*가 된다. 마지막으로 또 +를 괄호의 오른쪽으로 고치면 abc*+가 되게 된다. 천재 수학자 성필은 자신이 만든 이런 간단한 식조차..

Algorithm/BAEKJOON 2022.05.16
반응형