일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 11기
- 코틀린
- 나머지
- 파이썬
- 뒤로가기
- Python
- lcm
- 1260
- 안드로이드
- 최소공배수
- 홈화면
- 9095
- itertools
- 괄호
- Kotlin
- Combination
- Android
- permutation
- 1182
- expo
- 11054
- LCS
- 백준
- 앱
- 매일11시
- 11057
- 코테
- 11053
- 6603
- 순열
Archives
- Today
- Total
황소개발자
백준 16936 파이썬 python : 나3곱2 @@황소처럼 우직하게@@ 재밌어 이런문제, 방법 2가지 제시 본문
반응형
마치 이 뭔가 분열되어가며 답을 찾는 이 느낌.
n = int(input())
B = list(map(int, input().split()))
def go(x, b, A):
b.remove(x)
A.append(x)
least_one = False
if not b:
return True
if x * 2 in b:
least_one = True
return go(x * 2, b, A)
if x % 3 == 0 and x // 3 in b:
least_one = True
return go(x // 3, b, A)
if not least_one:
return False
for i in range(n):
A = []
flag = go(B[i], B.copy(), A)
if flag:
print(*A)
break
ㄱ그리고 백준님 아이디어는 아래와 같다.. RESPECT..
그렇다.. 3과 2는 서로소. 서로 독립적이다. 나눈다면 다시 3으로 커질 수 없으며, 2로 곱한다면 다시 2로 작을수 없다..
3으로 나눌 수 있는게 클 수록 앞으로, 같다면 그안에서 오름차순
n = int(input())
b = list(map(int, input().split()))
a = []
for num in b:
can3 = 0
num_origin = num
while True:
if num % 3 == 0:
can3 += 1
num //= 3
else:
break
a.append([can3, num_origin])
a.sort(key= lambda x: (-x[0], x[1]))
for i in range(n):
print(a[i][1], end=' ')
반응형
'백준 문제 풀이' 카테고리의 다른 글
백준 16938 파이썬 python : 캠프 준비 @@황소처럼 우직하게@@ 캠프가고 싶다 ㅠㅠ (0) | 2020.04.22 |
---|---|
백준 16937 파이썬 python : 두 스티커 @@황소처럼 우직하게@@ 갓포스트말론 (0) | 2020.04.22 |
백준 16924 파이썬 python : 십자가 찾기 @@황소처럼 우직하게@@ 코테에 잘나옴 은근 (0) | 2020.04.22 |
백준 16922 파이썬 python : 로마 숫자 만들기 @@황소처럼 우직하게@@ 최적화 연습하기 좋지~ (0) | 2020.04.22 |
백준 16968 파이썬 python : 차량 번호판 1 @@황소처럼 우직하게@@ 수학으로 푸는거라구 이건 (0) | 2020.04.22 |
Comments