

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