-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Bronze III] Title: 숫자 맞추기 게임, Time: 132 ms, Memory: 113112 KB -Baekj…
…oonHub
- Loading branch information
Showing
2 changed files
with
54 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# [Bronze III] 숫자 맞추기 게임 - 4892 | ||
|
||
[문제 링크](https://www.acmicpc.net/problem/4892) | ||
|
||
### 성능 요약 | ||
|
||
메모리: 113112 KB, 시간: 132 ms | ||
|
||
### 분류 | ||
|
||
사칙연산, 구현, 수학 | ||
|
||
### 문제 설명 | ||
|
||
<p>숫자 맞추기 게임은 초등학교 학생들 사이에서 유행하는 게임이다. 선생님은 학생들의 연산 실력과 논리적인 사고력을 기르기위해 학생들에게 이 게임을 권유하고 있다.</p> | ||
|
||
<p>이 게임을 시작할 때는 친구가 숫자 하나를 머리속에 생각해야 한다. 이 숫자를 n<sub>0</sub>이라고 하자. 그러고 나서 다음과 같이 게임을 진행한다.</p> | ||
|
||
<ol> | ||
<li>친구에게 n<sub>1</sub> = 3*n<sub>0</sub> 계산을 하라고 한 뒤, n<sub>1</sub>이 짝수인지 홀수인지를 말해달라고 한다.</li> | ||
<li>n<sub>1</sub>이 짝수라면, n<sub>2</sub> = n<sub>1</sub>/2를, 홀수라면 n<sub>2</sub> = (n<sub>1</sub>+1)/2를 계산해달라고 한다.</li> | ||
<li>n<sub>3</sub> = 3*n<sub>2</sub>의 계산을 부탁한다.</li> | ||
<li>친구에게 n<sub>4</sub> = n<sub>3</sub>/9를 계산한 뒤, 그 값을 말해달라고 한다. (n<sub>4</sub>는 나눗셈의 몫이다)</li> | ||
<li>자 이제, n<sub>1</sub>이 짝수였다면, n<sub>0</sub> = 2*n<sub>4</sub>로, 홀수였다면, n<sub>0</sub> = 2*n<sub>4</sub>+1로 처음 친구가 생각한 숫자를 맞출 수 있다.</li> | ||
</ol> | ||
|
||
<p>예를 들어, 친구가 생각한 수가 n<sub>0</sub>=37이었다면, n<sub>1</sub> = 111이 되고 홀수이다. 그 다음 n<sub>2</sub> = 56, n<sub>3</sub> = 168, n<sub>4</sub> = 18이 된다. 친구는 n<sub>4</sub>를 알려주게 된다. </p> | ||
|
||
<p>그럼 2*n<sub>4</sub>+1 = 37이기 때문에, 친구가 제일 처음 생각한 숫자를 맞출 수 있다.</p> | ||
|
||
<p>n<sub>0</sub>이 주어졌을 때, n<sub>1</sub>이 홀수인지 짝수인지와 n<sub>4</sub>를 구하는 프로그램을 작성하시오.</p> | ||
|
||
### 입력 | ||
|
||
<p>입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, n<sub>0</sub>으로 이루어져 있다. (0 < n<sub>0</sub> < 1,000,000) 입력의 마지막 줄에는 0이 하나 주어진다.</p> | ||
|
||
### 출력 | ||
|
||
<p>각 테스트 케이스에 대해서, 케이스 번호를 출력하고 n<sub>1</sub>이 짝수라면 'even', 홀수라면 'odd'를 출력하고, n<sub>4</sub>를 출력한다.</p> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
i = 1 | ||
while 1: | ||
n0 = int(input()) | ||
if n0 == 0: | ||
break | ||
n1 = 3*n0 | ||
n2 = (n1+1)//2 if n1%2 else n1//2 | ||
n3 = 3*n2 | ||
n4 = n3//9 | ||
if n0 == 2*n4: | ||
print(f"{i}. even {n4}") | ||
else: | ||
print(f"{i}. odd {n4}") | ||
i += 1 |