๐ฅ Silver5
https://www.acmicpc.net/problem/1251
import sys
from itertools import combinations
input = sys.stdin.readline
word = list(input().strip())
word_length = len(word)
result = set()
for i in range(1, word_length - 1):
for j in range(i+1, word_length):
first = word[:i]
sec = word[i:j]
thrid = word[j:]
# reverse
first.reverse()
sec.reverse()
thrid.reverse()
# ํฉ์น๊ธฐ
result.add("".join(first+sec+thrid))
print(sorted(result)[0])
# 31120 44
์ด ๋ฌธ์ ๋ ๊ธธ์ด๊ฐ 1์ด์์ผ๋ก 3๋ถ๋ถ์ผ๋ก ๋๋๊ณ , ๋ค์ง์ด์ ํฉ์น๊ณ ์ฌ์ ์ ์ ๋ ฌ๋ก ๊ฐ์ฅ ์ฒซ๋ฒ์งธ ์์๋ง ์ฐพ์ผ๋ฉด ๋๊ธฐ ๋๋ฌธ์,
3๋ถ๋ถ์ผ๋ก ๋จ์ด๋ฅผ ๋๋๋ ๋ถ๋ถ์ ์ ์ธํ๊ณค ์ด๋ ต์ง ์์ ๋ฌธ์ ๋ค.
์ฒ์์ ์๋ฌด์๊ฐ ์์ด 1์ด์์ผ๋ก ๋๋๋๊ฒ์ combinations๊ฐ์ ์กฐํฉ์ ์ฌ์ฉํด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋๋ฐ, ์กฐํฉ์ 1๊ฐ์ฉ ๋ฝ์์ ๋ง๋ค์ด์ฃผ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํ ์ ์์๋ค.
3๊ฐ์ง์ ๊ฒฝ์ฐ๋ก ๋๋๊ธฐ ์ํด ์ด์ค for๋ฌธ์ ์ฌ์ฉํด, i ํฌ์ธํฐ์ j ํฌ์ธํฐ๋ก, j๋ฅผ i๋ค์ ์์๋ถํฐ ๋งจ ๋ง์ง๋ง ์์๋ฅผ ์ ์ธํ (i+1, word_length) ๋ฒ์๋ด์์ ๊ฒฝ์ฐ๋ฅผ ๋ง๋ค์ด ๋๊ฐ๋ค.
first = iํฌ์ธํฐ๊ฐ ๊ฐ๋ฆฌํค๋ ๊ณณ๊น์ง
sec=i ํฌ์ธํฐ ์ดํ๋ถํฐ jํฌ์ธํฐ๊ฐ ๊ฐ๋ฆฌํค๋๊ณณ ๊น์ง
thrid=jํฌ์ธํฐ ์ดํ ๋๋จธ์ง
๋ณ๋ก ์ด๋ ค์๋ณด์ด์ง ์๋๋ฐ ์ด 3๋ถ๋ถ์ผ๋ก ๋๋๋๊ฒ ์ด๋ ค์ ๋ค..๐ข
'๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค-Python] ์๊ธฐ์์ด2 : 17086๋ฒ (0) | 2024.06.13 |
---|---|
[๋ฐฑ์ค-Python] ํน : 1063๋ฒ (1) | 2024.06.12 |
[๋ฐฑ์ค-Python] ์ข์์ํธ : 2061๋ฒ (1) | 2024.06.12 |
[๋ฐฑ์ค-Python] ํ์๋จธ์ : 1440๋ฒ (0) | 2024.06.12 |
[๋ฐฑ์ค-Python] ํ์ผ ํฉ์น๊ธฐ 3 : 13975๋ฒ (1) | 2024.06.11 |