-
[๋ฐฑ์ค] 9081 ๋จ์ด ๋ง์ถ๊ธฐ with PythonPS 2022. 3. 9. 01:10728x90๋ฐ์ํ
๐ BOJ 9081 ๋จ์ด ๋ง์ถ๊ธฐ
๐ก ์กฐ๊ฑด
๋จ์ด๋ฅผ ์ฃผ๋ฉด ๊ทธ ๋จ์ด๋ฅผ ์ด๋ฃจ๋ ์ํ๋ฒณ๋ค๋ก ๋ง๋ค ์ ์๋ ๋จ์ด๋ค์ ์ฌ์ ์์ผ๋ก ์ ๋ ฌํ ๋์
์ฃผ์ด์ง ๋จ์ด ๋ค์์ ๋์ค๋ ๋จ์ด๋ฅผ ์ฐพ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ๋ฌธ์ ์ผ์ด์ค์ ๊ฐ์ T (1 โค T โค 10)
๋จ์ด๋ ์ํ๋ฒณ A~Z ๋๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ง๋ฉฐ ํญ์ ๊ณต๋ฐฑ์ด ์๋ ์ฐ์๋ ์ํ๋ฒณ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
๋จ์ด์ ๊ธธ์ด๋ 100์ ๋์ง ์๋๋ค.๊ตฌํ ์ ํ์ ๋ฌธ์
๐ฅ ์์ค ์ฝ๋
from sys import stdin for t in range(int(stdin.readline())): string = list(stdin.readline().rstrip()) length = len(string) i, j = 0, 1 for idx in range(1, length): if string[idx] > string[idx - 1]: if i < idx: i = idx for idx in range(1, length): if string[idx] > string[i - 1]: if j < idx: j = idx if i != 0 and j != 0: string[i-1], string[j] = string[j], string[i-1] string[i:] = list(reversed(string[i:])) print(''.join(string))
๐ ์์ ๋ฐ ์คํ๊ฒฐ๊ณผ
์์
4 HELLO DRINK SHUTTLE ZOO
์คํ๊ฒฐ๊ณผ
HELOL DRKIN SLEHTTU ZOO
โจ๏ธ ๋ฌธ์ ํ์ด
s[i-1] < s[i] ๋ฅผ ๋ง์กฑํ๋ ์ต๋ i(s์ value) ์ฐพ๋๋ค.
j >= 1, s[i-1] < s[j] ๋ฅผ ๋ง์กฑํ๋ ์ต๋ j(index) ์ฐพ๋๋ค.
s[i-1] ๊ณผ s[j] ๋ฅผ ๋ฐ๊ฟ์ค ๋ค, s[i:]์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ง์ด ์ค๋ค.
๐พ ๋๋์
- ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด์ ๋ค์์ ์ค๋ ๋ฌธ์๋ฅผ ๊ตฌํ๊ธฐ ์ํ ๊ณต์์ด ๋ฐ๋ก ์์์ต๋๋ค.
- cpp ์์๋ next_permutation ์ ์ฌ์ฉํด์ ํ๋ฉด ๋๋ค๊ณ ํ๋ ๊ฒ ๊ฐ์๋ฐ, ํ์ด์ฌ์ ๊ทธ๊ฒ ์๋ค.
๋ฐ์ํ'PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 12018 Yonsei TOTO with Python (0) 2022.03.09 [๋ฐฑ์ค] 10163 ์์ข ์ด with Python (0) 2022.03.09 [๋ฐฑ์ค] 4811 ์์ฝ with Python (0) 2022.03.09 [๋ฐฑ์ค] 1822 ์ฐจ์งํฉ with Python (0) 2022.03.06 [๋ฐฑ์ค] 1788 ํผ๋ณด๋์น์์ ํ์ฅ with Python (0) 2022.03.06