문제 링크 6131번: 완전 제곱수 상근이는 선영이와 함께 게임을 하고 있다. 먼저, 상근이는 두 양의 정수 A와 B를 고른다. (1 ≤ B ≤ A ≤ 500) 그 다음, 선영이는 상근이가 고른 수를 맞춰야 한다. 상근이는 선영이에게 다음과 같 www.acmicpc.net 문제 풀이 반복문에 규칙을 정해서 문제의 조건을 찾아나간다. 규칙은 다음과 같다. b^2 - a^2 == N인 경우, 정답이 1 증가하고, b가 1 증가한다. b^2 - a^2 N인 경우, a가 1 증가한다. 규칙 1에서 정답이 1 증가한 뒤 b를 증가시키는 이유는 다음 정답을 찾기 위함이다. 정답 코드 N = int(input()) a, b, ans = 1, 2, 0 while..
문제 링크 5691번: 평균 중앙값 문제 세 정수 A, B, C의 평균은 (A+B+C)/3이다. 세 정수의 중앙값은 수의 크기가 증가하는 순서로 정렬했을 때, 가운데 있는 값이다. 두 정수 A와 B가 주어진다. 이때, A, B, C의 평균과 중앙값을 같게 만드는 www.acmicpc.net 문제 풀이 평균과 중앙값을 가장 작게 만드는 수 c를 찾는 방법은 간단하다. a, b, c 중 c가 가장 작은 수가 되면 된다. 따라서 c, a, b 순으로 수열이 만들어 질 것이다. 따라서 a와 b의 차이는 c와 a의 차와 같으므로 값을 쉽게 구할 수 있다. 정답 코드 while True : a, b = map(int, input().split()) if a == b == 0 : break print(2 * a - b)
문제 링크 5666번: Hot Dogs In 2012 a new world record was set in the famous Nathan’s Hot Dog Eating Competition: the champion, Joey Chestnut, ate 68 hot dogs in ten minutes, an amazing increase from the 62 hot dogs eaten by the same Chestnut in 2011. Nathan’s Famous Corporation, www.acmicpc.net 문제 풀이 입력값에 EOF가 들어올 때 까지 계속 계산 결과를 출력해준다. 계산은 단순 사칙연산이고, 소숫점 2번째 자리까지 출력한다. 정답 코드 try : while True : a, b =..
문제 링크 5102번: Sarah's Toys Input will be a number of lines, with each line representing a night in Sarah’s house. Each line will have 2 whole numbers, separated by a space. The first number is how many stuffed toys she owns at the time. The second number is the number of toys left www.acmicpc.net 문제 풀이 몫과 나머지를 조건에 맞게 구해주는 문제이다. 두 입력값 a, b가 주어진다면, 현재 사라가 가지고 있는 장난감의 수는 a - b이다. 따라서 a - b의 값에 따라 출력..
문제 링크 5101번: Sequences 11 is the 5th term The sequence is –1, -4, -7, -10 (-1+ -3 = -4, -4 + –3 = -7, -7+ -3 = -10) -8 isn’t in the sequence. www.acmicpc.net 문제 풀이 등차 수열의 첫번째 값, 차, 검사할 값이 주어지는데, 검사할 값과 첫번째 값을 빼준 뒤, 차를 나누었을 때 나머지가 0이라면 검사할 값은 등차수열에 포함이 된다. 따라서 첫번째 값, 차, 검사할 값을 각각 a, b, c라고한다면, (c - a) % b == 0이 되는 값을 찾아주면 된다. 단, 주의할 점이 있는데, 나누어 떨어지는 경우만 찾게 되면, 3, 2, 1같은 경우에 불가능한 입력이지만 정답으로 출력되므로 ..
문제 링크 4909번: Judging Olympia For years, a group of Regional Contest Directors (RCDs) of the ACM International Collegiate Programming Contest (ICPC) have been unsatisfied with the way contest submissions get ranked. The group sees it is academically wrong to emphasize the importance of www.acmicpc.net 문제 풀이 6개의 점수 중 최댓값과 최솟값을 뺀 4개의 수의 평균을 구해 출력해주는 문제이다. 단, 출력값에는 불필요한 0이 포함되지 않아야한다. 따라서, 자연수일 경우는 ..
문제 링크 4892번: 숫자 맞추기 게임 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, n0으로 이루어져 있다. (0 < n0 < 1,000,000) 입력의 마지막 줄에는 0이 하나 주어진다. www.acmicpc.net 문제 풀이 입력값을 받은 뒤, 주어진 규칙에 따라 출력해준다. n1의 홀짝 판단에 따라 출력이 달라진다. 정답 코드 cnt = 1 while True : n = int(input()) if n == 0 : break if n * 3 % 2 == 0 : print("{:d}. even {:d}".format(cnt, (3 * n // 2) * 3 // 9)) else : print("{:d}. odd {:d}".format(cnt, ((3 ..
문제 링크 4880번: 다음수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 수열의 연속하는 세 정수 a1, a2, a3이 한 줄에 주어진다. (-10,000 < a1, a2, a3 < 10,000) a1, a2, a3은 서로 같지 않다. 입력의 마지막 www.acmicpc.net 문제 풀이 주어진 입력값으로 등차수열 혹은 등비수열을 판단한 뒤, 네 번째에 올 수를 구한다. 등차수열인지 판단한 뒤, 맞지 않으면 등비수열이므로 쉽게 판단할 수 있다. 정답 코드 while True : a_lst = list(map(int, input().split())) if a_lst[0] == a_lst[1] == a_lst[2] == 0 : break if a_lst[2] - a_lst[1] =..