[Gold V] Title: 나3곱2, Time: 60 ms, Memory: 34924 KB -BaekjoonHub
This commit is contained in:
37
백준/Gold/16936. 나3곱2/README.md
Normal file
37
백준/Gold/16936. 나3곱2/README.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# [Gold V] 나3곱2 - 16936
|
||||
|
||||
[문제 링크](https://www.acmicpc.net/problem/16936)
|
||||
|
||||
### 성능 요약
|
||||
|
||||
메모리: 34924 KB, 시간: 60 ms
|
||||
|
||||
### 분류
|
||||
|
||||
수학, 정렬, 해 구성하기
|
||||
|
||||
### 제출 일자
|
||||
|
||||
2026년 1월 30일 21:35:50
|
||||
|
||||
### 문제 설명
|
||||
|
||||
<p>나3곱2 게임은 정수 하나를 이용한다. 가장 먼저, 정수 x로 시작하고, 연산을 N-1번 적용한다. 적용할 수 있는 연산은 두 가지 있고, 아래와 같다.</p>
|
||||
|
||||
<ul>
|
||||
<li>나3: x를 3으로 나눈다. x는 3으로 나누어 떨어져야 한다.</li>
|
||||
<li>곱2: x에 2를 곱한다.</li>
|
||||
</ul>
|
||||
|
||||
<p>나3곱2 게임을 진행하면서, 만든 수를 모두 기록하면 수열 A를 만들 수 있다. 예를 들어, x = 9, N = 6이고, 적용한 연산이 곱2, 곱2, 나3, 곱2, 나3인 경우에 A = [9, 18, 36, 12, 24, 8] 이다.</p>
|
||||
|
||||
<p>수열 A의 순서를 섞은 수열 B가 주어졌을 때, 수열 A를 구해보자.</p>
|
||||
|
||||
### 입력
|
||||
|
||||
<p>첫째 줄에 수열의 크기 N(2 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 수열 B가 주어진다. B에 포함된 원소는 10<sup>18</sup> 보다 작거나 같은 자연수이다.</p>
|
||||
|
||||
### 출력
|
||||
|
||||
<p>나3곱2 게임의 결과 수열 A를 출력한다. 항상 정답이 존재하는 경우에만 입력으로 주어지며, 가능한 정답이 여러가지인 경우에는 아무거나 출력한다.</p>
|
||||
|
||||
39
백준/Gold/16936. 나3곱2/나3곱2.py
Normal file
39
백준/Gold/16936. 나3곱2/나3곱2.py
Normal file
@@ -0,0 +1,39 @@
|
||||
import sys
|
||||
from collections import deque
|
||||
|
||||
input = sys.stdin.readline
|
||||
N = int(input())
|
||||
orig = list(map(int, input().split()))
|
||||
|
||||
for start in orig:
|
||||
arr = deque(orig)
|
||||
answer = deque()
|
||||
|
||||
arr.remove(start)
|
||||
cur = start
|
||||
answer.append(cur)
|
||||
|
||||
while arr:
|
||||
# 1) /3 우선
|
||||
if cur % 3 == 0:
|
||||
div_value = cur // 3
|
||||
if div_value in arr:
|
||||
arr.remove(div_value)
|
||||
cur = div_value
|
||||
answer.append(cur)
|
||||
continue
|
||||
|
||||
# 2) *2
|
||||
mul_value = cur * 2
|
||||
if mul_value in arr:
|
||||
arr.remove(mul_value)
|
||||
cur = mul_value
|
||||
answer.append(cur)
|
||||
continue
|
||||
|
||||
# 다음 값이 없으면 이 start는 실패
|
||||
break
|
||||
|
||||
if len(answer) == N:
|
||||
print(' '.join(map(str, answer)))
|
||||
break
|
||||
Reference in New Issue
Block a user