๋ฐฑ์ค€/Python

[Python] ๋ฐฑ์ค€ 1251

๋‹ค๋ธ”๐Ÿ’ 2022. 9. 25. 23:18

๋‹จ์–ด ๋‚˜๋ˆ„๊ธฐ (Silver 5)

์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋‹จ์–ด๋ฅผ ๊ฐ€์ง€๊ณ  ์•„๋ž˜์™€ ๊ฐ™์€ ๊ณผ์ •์„ ํ•ด ๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

๋จผ์ € ๋‹จ์–ด์—์„œ ์ž„์˜์˜ ๋‘ ๋ถ€๋ถ„์„ ๊ณจ๋ผ์„œ ๋‹จ์–ด๋ฅผ ์ชผ๊ฐ ๋‹ค. ์ฆ‰, ์ฃผ์–ด์ง„ ๋‹จ์–ด๋ฅผ ์„ธ ๊ฐœ์˜ ๋” ์ž‘์€ ๋‹จ์–ด๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด๋‹ค. ๊ฐ๊ฐ์€ ์ ์–ด๋„ ๊ธธ์ด๊ฐ€ 1 ์ด์ƒ์ธ ๋‹จ์–ด์—ฌ์•ผ ํ•œ๋‹ค. ์ด์ œ ์ด๋ ‡๊ฒŒ ๋‚˜๋ˆˆ ์„ธ ๊ฐœ์˜ ์ž‘์€ ๋‹จ์–ด๋“ค์„ ์•ž๋’ค๋ฅผ ๋’ค์ง‘๊ณ , ์ด๋ฅผ ๋‹ค์‹œ ์›๋ž˜์˜ ์ˆœ์„œ๋Œ€๋กœ ํ•ฉ์นœ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด,

  • ๋‹จ์–ด : arrested
  • ์„ธ ๋‹จ์–ด๋กœ ๋‚˜๋ˆ„๊ธฐ : ar / rest / ed
  • ๊ฐ๊ฐ ๋’ค์ง‘๊ธฐ : ra / tser / de
  • ํ•ฉ์น˜๊ธฐ : ratserde

๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋‹จ์–ด ์ค‘์—์„œ ์‚ฌ์ „์ˆœ์œผ๋กœ ๊ฐ€์žฅ ์•ž์„œ๋Š” ๋‹จ์–ด๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์˜์–ด ์†Œ๋ฌธ์ž๋กœ ๋œ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ธธ์ด๋Š” 3 ์ด์ƒ 50 ์ดํ•˜์ด๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ๊ตฌํ•˜๊ณ ์ž ํ•˜๋Š” ๋‹จ์–ด๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ 1

mobitel

์˜ˆ์ œ ์ถœ๋ ฅ 1

bometil

 

 

 

์šฐ์„  input์œผ๋กœ ๋ฆฌ์ŠคํŠธ์— ๋‹จ์–ด๋ฅผ ์ž…๋ ฅ๋ฐ›์•˜๋‹ค.

๊ทธ ๋‹ค์Œ ๋‹จ์–ด๋ฅผ for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋‹จ์–ด๋ฅผ ์„ธ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆ„๊ณ , ๊ฐ๊ฐ์˜ ๋‚˜๋ˆ„์–ด์ง„ ์„ธ ๋ถ€๋ถ„์„ reverse๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋’ค์ง‘์–ด์คฌ๋‹ค.

์„ธ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋‰œ ๋‹จ์–ด๋“ค์„ ํ•ฉ์ณ์„œ new_word ๋ฐฐ์—ด์— ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๊ณ , ์ด๋ฅผ ๋‹ค์‹œ result๋ผ๋Š” ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์— ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋‹ค, ๊ทธ ๋‹ค์Œ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ๊ฐ€์žฅ ์•ž์„œ๋Š” ๋‹จ์–ด๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— sorted๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์ธ๋ฑ์Šค 0๋ฒˆ์„ ์ถœ๋ ฅํ•ด์ฃผ์—ˆ๋‹ค.

new_word ๋ฐฐ์—ด์— ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ  ๋ฐ”๋กœ sorted๋ฅผ ํ•˜๊ณ  ์ธ๋ฑ์Šค 0๋ฒˆ์„ ์ถœ๋ ฅํ•ด์ฃผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋”ฐ์˜ดํ‘œ์— ๋ฌถ์—ฌ์ง„ ํ˜•ํƒœ๋กœ ์ถœ๋ ฅ์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์—  join์„ ์‚ฌ์šฉํ•ด์„œ '', ์ฆ‰ ๋”ฐ์˜ดํ‘œ ์‚ฌ์ด์— ๋“ค์–ด๊ฐ„ ๋ฌธ์ž์—ด๋งŒ ํ•ฉ์ณ์ฃผ์–ด result ๋ฐฐ์—ด์— ๋‹ค์‹œ ์ €์žฅํ•ด์ฃผ์—ˆ๋‹ค.

word = list(input())
result = []
new_word = []

for i in range(1, len(word) - 1):
    for j in range(i + 1, len(word)):
        first = word[:i]  # ์„ธ ๋‹จ์–ด๋กœ ๋‚˜๋ˆ„๊ธฐ
        second = word[i:j]
        third = word[j:]
       	first.reverse()    # ๊ฐ๊ฐ ๋’ค์ง‘๊ธฐ
       	second.reverse()
        third.reverse()
        new_word.append(first + second + third)   # ํ•ฉ์น˜๊ธฐ

for word in new_word:
    result.append(''.join(word))  # ํ•ฉ์นœ ๋‹จ์–ด ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์— ์ถ”๊ฐ€

print(sorted(result)[0])          # ์‚ฌ์ „ ์ˆœ์œผ๋กœ ๊ฐ€์žฅ ์•ž์„œ๋Š” ๋‹จ์–ด ์ถœ๋ ฅ

'๋ฐฑ์ค€ > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ๋ฐฑ์ค€ 1158  (0) 2022.10.04
[Python] ๋ฐฑ์ค€ 2161  (0) 2022.10.04
[Python] ๋ฐฑ์ค€ 1475๋ฒˆ  (0) 2022.07.04
[Python] ๋ฐฑ์ค€ 1427๋ฒˆ  (0) 2022.07.04
[Python] ๋ฐฑ์ค€ 11866๋ฒˆ  (0) 2022.07.04