#89
수 맞추기 1
인터랙티브
시간 제한
0.1s
메모리 제한
256MB
제출
10
정답
7
맞힌 사람
6
정답 비율
75.0%
문제
이 문제는 인터랙티브 문제다. 인터랙티브 문제란 문제에 대한 답을 단순히 출력하는 것이 아니라, 채점기와 상호작용하여 정답을 알아내는 문제다.
채점기는 부터 사이의 무작위 정수를 하나 들고 있다. 이 수를 맞추는 프로그램을 작성해보자.
인터랙티브
당신의 프로그램은 최대 10번의 질문을 할 수 있다. 질문은 아래의 형식으로 출력한다.
? x: 채점기가 갖고 있는 수가 인지 물어본다. ()
당신의 프로그램이 질문을 한 뒤에, 채점기는 자신이 갖고 있는 수가 랑 같으면 YES를 출력해주고, 다르다면 NO를 출력해준다.
여러분은 C의 scanf나 C++의 cin, Python의 input 등의 표준 입력 방법을 통해 채점기의 출력을 입력으로써 받아올 수 있다.
질문을 한 뒤에는 반드시 출력 버퍼를 비워줘야 한다. 그렇지 않으면 예상치 못한 결과를 얻을 수 있다.
아래 방법으로 출력 버퍼를 비울 수 있다.
- C:
fflush(stdout) - C++:
std::cout << std::flush - Python:
sys.stdout.flush()
수가 무엇인지 알았다면 아래의 형식으로 답을 출력한다.
! x: 채점기가 갖고 있는 수는 이다.
답을 출력한 후에는 반드시 프로그램을 종료해야 하며, 그 외의 경우에는 TLE 에러를 받을 수 있으니 주의하자!
예제 입력 1
NO NO YES
예제 출력 1
? 1 ? 2 ? 3 ! 3
입출력이 어떤 방식으로 이루어지는지 이해를 돕기 위해, 의도적으로 줄 간격을 조절한 것이다. 실제 입출력과 다른 것에 유의하자.
힌트
다음 Python 소스코드로 이 문제를 해결할 수 있다.
hljs py
for i in range(1, 10+1):
print("?", i)
if input() == "YES":
print("!", i)
break
그러나 만약 다음과 같은 Python 소스코드를 제출하면 시간 초과를 받을 것이다.
hljs py
import sys
input = sys.stdin.readline
for i in range(1, 10+1):
print("?", i)
if input() == "YES":
print("!", i)
break
- 문제를 만든 사람
- 조서현
- 알고리즘 분류
코드 제출
코드를 제출하려면 로그인이 필요합니다.
로그인내 제출
제출 내역이 없습니다.
맞은 사람
| # | 순위 | 사용자 | 언어 | 시간 | 메모리 | 코드 길이 | |
|---|---|---|---|---|---|---|---|
| 8804 | 🥇 | 표강준 | Python | 7ms | 8080KB | 135B | |
| 9283 | 🥈 | 서준 | Python | 7ms | 8116KB | 175B | |
| 5434 | 🥉 | ana | Python | 7ms | 8120KB | 103B | |
| 8389 | 4 | 이채환 | Python | 7ms | 8176KB | 101B | |
| 8791 | 5 | 안우진 | Python | 8ms | 8112KB | 104B | |
| 4050 | 6 | 202102659_안우진 | Python | 226ms | 10112KB | 107B |
난이도 투표
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
| # | 사용자 | 문제 | 결과 | 언어 | 시간 | 메모리 | 코드 길이 | 제출 시간 | |
|---|---|---|---|---|---|---|---|---|---|
| 9283 | 맞았습니다 | Python | 7ms | 8116KB | 175B | 2026. 07. 04. 00:03 | |||
| 9282 | 시간 초과 | Python | - | - | 152B | 2026. 07. 04. 00:02 | |||
| 9281 | 맞았습니다 | Python | 8ms | 8116KB | 202B | 2026. 07. 04. 00:02 | |||
| 8804 | 맞았습니다 | Python | 7ms | 8080KB | 135B | 2026. 06. 08. 06:56 | |||
| 8802 | 틀렸습니다 | Python | - | - | 250B | 2026. 06. 08. 02:37 | |||
| 8791 | 맞았습니다 | Python | 8ms | 8112KB | 104B | 2026. 06. 08. 01:05 | |||
| 8789 | 시간 초과 | Python | - | - | 142B | 2026. 06. 08. 00:38 | |||
| 8389 | 맞았습니다 | Python | 7ms | 8176KB | 101B | 2026. 05. 26. 06:12 | |||
| 5434 | 맞았습니다 | Python | 7ms | 8120KB | 103B | 2026. 04. 06. 14:56 | |||
| 4050 | 맞았습니다 | Python | 226ms | 10112KB | 107B | 2025. 03. 17. 04:19 |