

-Code
import java.util.Scanner;
public class BOJ31497 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String[] names = new String[n];
for (int i = 0; i < n; i++) {
names[i] = sc.next();
}
String result = "";
// 모든 사람 순회하면서 물어보기
for (int i = 0; i < n; i++) {
System.out.println("? " + names[i]);
// 인터렉티브 문제이므로 상대방에게 값을 넘겨줌
System.out.flush();
// 생일이 맞는지 상대방이 알려줌
int answer1 = sc.nextInt();
if (answer1 == 1) {
// 1이 나왔으면 진짜인지 확인하기 위해 한 번 더 질문
System.out.println("? " + names[i]);
System.out.flush();
// 생일이 맞는지 다시 물어본 것의 대답
int answer2 = sc.nextInt();
if (answer2 == 1) {
// 2번 질문이 1이면 생일자
result = names[i];
break;
}
}
}
// 만약 위에서 못 찾았다면 다시 확인 (전부 0이 나온 경우)
for (int i = 0; i < n; i++) {
System.out.println("? " + names[i]);
System.out.flush();
// 다시 질문
int res = sc.nextInt();
if (res == 1) {
result = names[i];
break;
}
}
System.out.println("! " + result);
System.out.flush();
}
}
인터렉티브 문제가 뭔지 몰라서 이상하게 풀다가 찾아서 해결을 했습니다. flush를 통해 상대방에게 값을 넘겨주며 상대가 값을 토대로 다시 넣어서 진행되는 문제였습니다.
'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
| [백준/Java] 2442번 별 찍기 - 5 (0) | 2025.12.19 |
|---|---|
| [백준/Java] 6795번 Up and Down (0) | 2025.12.19 |
| [백준/Java] 34917번 M (0) | 2025.12.17 |
| [백준/Java] 10384번 팬그램 (0) | 2025.12.16 |
| [백준/Java] 11726번 2×n 타일링 (0) | 2025.12.15 |