Tags
- ์๋ฎฌ๋ ์ด์
- LV2
- ๊ทธ๋ํ ์ด๋ก
- dfs
- PGM
- ๋ฌธ์์ด
- CodingTest
- Python
- ๊น์ด ์ฐ์ ํ์
- SpringBoot
- ๊ต์ฌ
- DP
- Brute Force Algorithm
- ์๋ฃ๊ตฌ์กฐ
- stack
- BFS
- Study
- Java
- ๋ฐฑํธ๋ํน
- sort
- queue
- Dynamic Programming
- ๋๋น ์ฐ์ ํ์
- ์ํ
- ์ ์๋ก
- ๊ทธ๋ํ ํ์
- BOJ
- greedy
- ์ ๋ ฌ
- ๊ตฌํ
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_12933 : ์ค๋ฆฌ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ์ธ์์๋ฆฌ "quack"๋ฅผ ํ์ธํด์ผํ๋๋ฐ, ์ฌ๋ฌ ์ฌ์ดํด์ด ์กด์ฌํ ์ ์๋ค.
- ๋ถ๊ฐ๋ฅํ ์กฐํฉ์ด๋ผ๋ฉด -1์ ์ถ๋ ฅํด์ผ ํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import sys
input = sys.stdin.readline
print = sys.stdout.write
string = input().rstrip()
strs = [] # ์ค๋ฆฌ ๋ณ ์ธ์์๋ฆฌ ์ ์ฅ
answer = 0 # ์ค๋ฆฌ์ ์
done = 0 # ๋๋ ์ธ์ ์๋ฆฌ ์
duck = "quack" # ์ธ์์๋ฆฌ ํ ์ฌ์ดํด
find = 0 # ์ฌ์ดํด์์ ์ฐพ๋ ๋ฌธ์
for c in string:
if c == 'q': find = 4 # ์ด์ ๋ฌธ์๋ฅผ ์ฐพ์์ผํจ
elif c == 'u': find = 0
elif c == 'a': find = 1
elif c == 'c': find = 2
elif c == 'k': find = 3
isin = False # ์ฐ๊ฒฐ๋๋ ์ธ์ ์ฐพ๊ธฐ
for i in range(len(strs)): # ์ธ์ ๊ฒ์ฌ
if strs[i][-1] == duck[find]:
strs[i] += duck[(find+1)%5]
isin = True # ์ฐ๊ฒฐ๋๋ ์ธ์ ์ฐพ์
if find == 3:
done += 1
elif find == 4:
done -= 1
break
if not isin: # ์ฐ๊ฒฐ๋๋ ์ธ์ ๋ชป์ฐพ์
strs.append("q")
answer += 1
if answer == done:
print(str(answer))
else:
print(str(-1))
๐ธ ์ฝ๋ ํด์ ๐ธ
- ์ธ์์๋ฆฌ๋ฅผ ๊ตฌ๋ถํ๋ ๋ฐฉ๋ฒ์ผ๋ก string ๋ฆฌ์คํธ๋ฅผ ์ ํํ๋ค.
- ๋ถ๊ฐ๋ฅํ ์ฌ์ดํด์ ์ค๋ฆฌ์ ์์ ์์ฑ๋ ์ธ์์ ์๋ฅผ ๋น๊ตํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
- ์ ๋ ฅ์์ ๋ง์ง๋ง ์ค๋ฐ๊ฟ \n์ ์ ๊ฑฐํด์ค์ผ ํ๋ค.
๐ธ end ๐ธ
- ์ธ์์๋ฆฌ ๊ตฌ๋ถ ๋ฐฉ๋ฒ์ ๋ง์ด ๊ณ ๋ฏผํ๋ค ๋ฆฌ์คํธ๋ฅผ ์ ํํ๋ค.
- ์ค๋ฒ 4์น๊ณ ๋ ์ด๋ ต๊ฒ ํ์ ๊ฒ ๊ฐ์ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ์ ์๊ฐ์ด๋ค.
728x90
'CodingTest > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_2775 : ๋ถ๋ ํ์ฅ์ด ๋ ํ ์ผ (0) | 2022.08.07 |
---|---|
BOJ_2751 : ์ ์ ๋ ฌํ๊ธฐ 2 (0) | 2022.08.02 |
BOJ_10828 : ์คํ (0) | 2022.07.30 |
BOJ_20207 : ๋ฌ๋ ฅ (0) | 2022.07.21 |
BOJ_17413 : ๋จ์ด ๋ค์ง๊ธฐ 2 (0) | 2022.07.21 |