๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€

[๋ฐฑ์ค€] (Python) 10610๋ฒˆ_30

Dbswnstjd 2022. 2. 20. 22:06

 

https://www.acmicpc.net/problem/10610

 

10610๋ฒˆ: 30

์–ด๋Š ๋‚ , ๋ฏธ๋ฅด์ฝ”๋Š” ์šฐ์—ฐํžˆ ๊ธธ๊ฑฐ๋ฆฌ์—์„œ ์–‘์ˆ˜ N์„ ๋ณด์•˜๋‹ค. ๋ฏธ๋ฅด์ฝ”๋Š” 30์ด๋ž€ ์ˆ˜๋ฅผ ์กด๊ฒฝํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ทธ๋Š” ๊ธธ๊ฑฐ๋ฆฌ์—์„œ ์ฐพ์€ ์ˆ˜์— ํฌํ•จ๋œ ์ˆซ์ž๋“ค์„ ์„ž์–ด 30์˜ ๋ฐฐ์ˆ˜๊ฐ€ ๋˜๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์–ดํ•œ

www.acmicpc.net

ํ’€์ด

๋‚ด ํ’€์ด

# ๋ฐฑ์ค€ 10610๋ฒˆ ๋ฌธ์ œ - 30
n = list(input())
new_list = []
for i in n:
    new_list.append(int(i))
if 0 in new_list:
    new_list.sort(reverse=True)
    for j in range(len(new_list)):
        new_list[j] = str(new_list[j])
    new_list = ''.join(new_list)
    print((new_list))
else:
    print(-1)

์ฒ˜์Œ์—๋Š” ์ด๋ ‡๊ฒŒ ๋ณต์žกํ•˜๊ฒŒ ํ’€์—ˆ๋Š”๋ฐ ๋‹ต์ด ํ‹€๋ ค์„œ

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค ๊ฒƒ์„ ํ™•์ธํ•ด ๋ดค๋”๋‹ˆ ๋‚ด๊ฐ€ ๋„ˆ๋ฌด ๋ณต์žกํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.

์ •๋‹ต 

# ๋ฐฑ์ค€ 10610๋ฒˆ ๋ฌธ์ œ - 30
n = list(input())

answer = -1
if min(n) == '0':
    max_num = sorted(n, reverse=True)
    max_num = int(''.join(max_num))

    if max_num % 3 == 0:
        answer = max_num

print(answer)

1. n์— 0์ด ์กด์žฌ ํ•ด์•ผ 30์˜ ๋ฐฐ์ˆ˜๊ฐ€ ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์— 0์ด ์กด์žฌ ํ•˜๋Š”์ง€ ํ™•์ธ

 

2. max_num ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ ํ›„ ๋ฆฌ์ŠคํŠธ join

 

3. ๊ทธ ์ˆ˜๊ฐ€ 3์˜ ๋ฐฐ์ˆ˜์ธ์ง€ ์•„๋‹Œ์ง€ ํ™•์ธ

 

4. ์ถœ๋ ฅ

๊ฐ„๋‹จํ•œ ํ’€์ด 

import sys
input = sys.stdin.readline

N = input().rstrip()

if "0" in N and sum(map(int, N)) % 3 == 0:
    print("".join(reversed(sorted(N))))
else:
    print(-1)