ZOAC(๋ฐฑ์ค 16719๋ฒ)
๐ก **Check Point !
(ย ํด๋น์ฌํญย โ์ฒดํฌย )
๋งํ ์์ด ์์ํ๊ฒ ํ๋ฆฐ ๋ฌธ์ ์ธ๊ฐ?
1์๊ฐ์ด๋ด๋ก ํ๋ ธ๋ ๋ฌธ์ ์ธ๊ฐ?
1์๊ฐ ์ด์ or ๋ฉฐ์น ์ ๋๊ณ ํ์ด๋ดค๋๋ ํ๋ฆฐ ๋ฌธ์ ์ธ๊ฐ?
์๊ฐ์ ์จ๋ ๋๋ฌด์ง ํ ์ ์๋ ๋ฌธ์ ์ธ๊ฐ?
์๋ฃจ์ ์ ์ฐพ์๋ดค๋๊ฐ?โ
๋์ด๋ ์ฒด๊ฐ
์ต์
์
์คโ
ํ
์ดํด๋
์๋ฒฝํ ์ดํดโ
๋ค์ ํท๊ฐ๋ฆฌ๋ ๋ถ๋ถ๋ค์ด ์์
์ดํด ๋ชปํจ
๋ฌธ์
2018๋ 12์, ์ฒ์ ์์ํ๊ฒ ๋ ZOAC์ ์คํ๋์ ๋งก์ ์ฑ์ฐ๋ ๋๊ตฌ๋ณด๋ค ํ๋ คํ๊ฒ ZOAC๋ฅผ ์๋ฆฌ๋ ค ํ๋ค.
์ ๊ธ์๋ถํฐ ํ๋์ฉ ๋ณด์ฌ์ฃผ๋ ๋ฐฉ์์ ๋๋ฌด ์์ํ๋ค๊ณ ์๊ฐํ ์ฑ์ฐ๋ ๋ฌธ์์ด์ ๋ณด์ฌ์ฃผ๋ ์๋ก์ด ๊ท์น์ ๊ณ ์ํด๋๋ค!
๊ท์น์ ์ด๋ฌํ๋ค. ์์ง ๋ณด์ฌ์ฃผ์ง ์์ ๋ฌธ์ ์ค ์ถ๊ฐํ์ ๋์ ๋ฌธ์์ด์ด ์ฌ์ ์์ผ๋ก ๊ฐ์ฅ ์์ ์ค๋๋ก ํ๋ ๋ฌธ์๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ด๋ค.
์๋ฅผ ๋ค์ด ZOAC๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์ถ๋ค๋ฉด, A โ AC โ OAC โ ZOAC ์์ผ๋ก ๋ณด์ฌ์ฃผ๋ฉด ๋๋ค.
๋ฐ์ ์ฑ์ฐ๋ฅผ ์ํ์ฌ ์ด ๊ท์น๋๋ก ์ถ๋ ฅํด์ฃผ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๋์ ํ์ด(์ ๋ต ์ฐธ๊ณ )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def solve(start,S,show):
if not S:
return
min_ch=min(S)
idx=S.index(min_ch)
show[start+idx]=min_ch
print(''.join(show))
solve(start+idx+1,S[idx+1:],show)
solve(start,S[:idx],show)
S=input()
show=['']*len(S)
solve(0,S,show)
- ์ ๋ฌธ์ ๋ ์ฌ๊ทํจ์๋ก ํ์๋ค. ์์ง ์ฌ๊ทํจ์๋ฅผ ํ์ฉํ๋ ๊ฒ์ ๋ง์ด ์ต์ํ์ง๋ ์์ ๊ฒ ๊ฐ๋ค.
- ๋ํ ๋ฌธ์์ด์ด ์ต๋ 100์ด๊ธฐ ๋๋ฌธ์, min, index์ ๊ฐ์ ํจ์๋ฅผ ์จ๋ ๊ด์ฐฎ์๋ค.(์๊ฐ ๋ณต์ก๋ ์๊ฐ์ ์ ๋ชปํ๋ ๊ฒ ๊ฐ๋ค, ์กฐ๊ธ ๋ ์๊ฐํ์)
- ํด๋น ๋ฌธ์์ด์์ ๊ฐ์ฅ ์์คํค์ฝ๋ ๊ฐ์ด ์์, ์ฆ ์ฌ์ ๋ฐฐ์ด์์ ์ฐ์ ์์๊ฐ ๋๋ ๋ฌธ์๋ฅผ ์ฐพ๊ณ , ๊ทธ ๋ฌธ์๋ฅผ ์ถ๊ฐํ๋ค. ๊ทธ ํ ์ฌ๊ทํจ์์, ๊ทธ ์ดํ ๋ฌธ์์ด์ ๋จผ์ ๋ฃ์ด์ค๋ค.(์ฌ์ ์์ ๊ทธ ๋ค์ ๋ฌธ์๊ฐ ์ฐ์ ์์๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค.
- ๊ทธ ํ, ์์ ๋ฌธ์์ด์ ๋ํด solveํจ์๋ฅผ ์ฒ๋ฆฌํด์ค๋ค.