ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
์ ์ ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ์ฐ์ N-1๋ฒ ์ ์ฉํ๋ค. ์ ์ฉํ ์ ์๋ ์ฐ์ฐ์ ์ ์๊ฐ 3์ผ๋ก ๋๋์ด ๋จ์ด์ง๋ ๊ฒฝ์ฐ 3์ผ๋ก ๋๋๊ฑฐ๋, 2๋ฅผ ๊ณฑํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ๋ฌธ์ ์ ์ ์๋ ์กฐ๊ฑด์ ๋ฐ๋ผ DFS๋ฅผ ํตํ์ฌ ๊ตฌํ๋ฉด ์ฝ๊ฒ ๋ฌธ์ ๋ฅผ ํ ์ ์๋ค. DFS๋ก ํธ๋ ๊ฒ์ ๋ค๋ฅธ ๋ฌธ์ ์์๋ ๋ง์ด ๋ค๋ฃจ์๊ณ `์๋ก์`์ ์ฑ์ง์ ์ด์ฉํ์ฌ 3์ผ๋ก ๊ฐ์ฅ ๋ง์ด ๋๋์ด ๋จ์ด์ง๋ ์๋ถํฐ ์ ๋ ฌํ๋ ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ํธ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
๋ง์ฝ, DFS๋ก ํ๊ณ ์ ํ๋ค๋ฉด DFS์ deapth๊ฐ N - 1์ด ๋ ๋๊น์ง ๋ฐ๋ณตํ๊ณ 3์ผ๋ก ๋๋์ด ๋จ์ด์ง๋ ๊ฒฝ์ฐ์, 2๋ฅผ ๊ณฑํ๋ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ํ์ํ๊ณ ์ ํ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ถ๊ฐํ๋ฉด ๋๋ค.
์ฝ๋
from sys import stdin
if __name__ == '__main__':
n = int(stdin.readline())
b = list(map(int, stdin.readline().split()))
b = {num: 0 for num in b}
for num in b.keys():
cur_num = num
while True:
if num % 3 == 0:
b[cur_num] += 1
num //= 3
else:
break
sort_dict = sorted(b.items(), key=lambda x: (-x[1], x[0]))
print(*[key for key, _ in sort_dict])
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 14238 ์ถ๊ทผ ๊ธฐ๋ก (0) | 2020.09.27 |
---|---|
๋ฐฑ์ค: 11060 ์ ํ ์ ํ (0) | 2020.09.27 |
๋ฐฑ์ค: 16938 ์บ ํ ์ค๋น (0) | 2020.09.26 |
๋ฐฑ์ค: 12869 ๋ฎคํ๋ฆฌ์คํฌ (0) | 2020.09.25 |
๋ฐฑ์ค: 16197 ๋ ๋์ (0) | 2020.09.25 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ