[랜덤 마라톤] 동전 게임(10837)

lhs's avatar
Dec 19, 2024
[랜덤 마라톤] 동전 게임(10837)
notion image
notion image

1. 문제 풀이 아이디어

  • 남은 횟수 동안 점수가 같아질 수 있는지 계산하여 문제를 해결할 수 있다.

2. 나의 정답 코드

public class Main { public static void main(String[] args) throws IOException { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); StringBuilder stringBuilder = new StringBuilder(); int k = Integer.parseInt(bufferedReader.readLine()); int c = Integer.parseInt(bufferedReader.readLine()); for (int i = 0; i < c; i++) { StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine()); int m = Integer.parseInt(stringTokenizer.nextToken()); int n = Integer.parseInt(stringTokenizer.nextToken()); if (m > n) { if (n + k - m + 2 < m) { stringBuilder.append("0\n"); continue; } } else if (m < n) { if (m + k - n + 1 < n) { stringBuilder.append("0\n"); continue; } } stringBuilder.append("1\n"); } System.out.print(stringBuilder); bufferedReader.close(); } }

3. 정리

  • mn을 입력으로 받아서, mn보다 크거나 작은 경우를 나누어 계산한다.
  • 남은 횟수를 모두 성공했을 때의 점수에 1을 더하여 계산하고, 이를 바탕으로 불가능한 경우를 판단한다.
  • m이 더 클 경우, n은 한 번 더 던질 수 있으므로 1을 추가적으로 더한다.
  • 조건문에서 불가능한 상황이라 판단되면 0을 출력하고, 가능하다면 1을 출력하여 문제를 해결한다.
Share article

LHS's Study Space