Skip to content

Commit

Permalink
[Bronze III] Title: 숫자 맞추기 게임, Time: 132 ms, Memory: 113112 KB -Baekj…
Browse files Browse the repository at this point in the history
…oonHub
  • Loading branch information
hmnd1257 committed Jul 4, 2023
1 parent 7187d8d commit 8734baf
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 0 deletions.
40 changes: 40 additions & 0 deletions 백준/Bronze/4892. 숫자 맞추기 게임/README.md
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>

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

0 comments on commit 8734baf

Please sign in to comment.