1. ๋ฌธ์ ์ค๋ช
๋ฌธ์ URL : https://www.acmicpc.net/problem/1343
์ด ๋ฌธ์ ๋ ์ฃผ์ด์ง ๋ฌธ์์ด์์ ‘X’๋ก ์ด๋ฃจ์ด์ง ๋ชจ๋ ๋ถ๋ถ์ ‘AAAA’ ๋๋ ‘BB’๋ก ๋์ฒดํ๋ ๋ฌธ์ ์ ๋๋ค. ‘X’๋ฅผ ๋ฎ์ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง๋ฟ์ด๋ฉฐ, 4๊ฐ์ ์ฐ์๋ ‘X’๋ ‘AAAA’๋ก, 2๊ฐ์ ์ฐ์๋ ‘X’๋ ‘BB’๋ก ๋ณํํ ์ ์์ต๋๋ค. ๊ทธ ์ธ์ ๊ฒฝ์ฐ์๋ ๋ฎ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ๋ฅผ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ ๋ ฅ์ด “XX….XXXX”์ผ ๊ฒฝ์ฐ, ๊ฐ๋ฅํ ๋ณํ์ “BB….AAAA”์ ๋๋ค. ๋ง์ฝ ๋ฎ์ ์ ์๋ ํจํด์ด ์กด์ฌํ ๊ฒฝ์ฐ, -1์ ์ถ๋ ฅํฉ๋๋ค.
2. ์ ๋ต์ฝ๋
import sys
input = sys.stdin.readline
# ๋ณด๋๋ฅผ ์
๋ ฅ๋ฐ์ ๋ฆฌ์คํธ๋ก ๋ณํ
board = list(input().rstrip())
def sol():
cnt = 0 # 'X'์ ๊ฐ์๋ฅผ ์ธ๋ ์นด์ดํฐ
ans = '' # ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ ๋ฌธ์์ด
for i in range(len(board)):
if board[i] == 'X': # ํ์ฌ ๋ฌธ์๊ฐ 'X'์ธ ๊ฒฝ์ฐ
cnt += 1 # 'X'์ ๊ฐ์๋ฅผ ์ฆ๊ฐ์ํด
if cnt == 4: # 'X'๊ฐ 4๊ฐ๊ฐ ๋๋ฉด
ans += 'AAAA' # 'AAAA'๋ก ๋ณํํ์ฌ ์ถ๊ฐ
cnt = 0 # ์นด์ดํฐ๋ฅผ ์ด๊ธฐํ
else: # ํ์ฌ ๋ฌธ์๊ฐ '.'์ธ ๊ฒฝ์ฐ
if cnt == 0: # 'X'๊ฐ ์๋ ๊ฒฝ์ฐ (์ด์ ๋ฌธ์๊ฐ '.')
ans += '.' # ๊ทธ๋๋ก '.'์ ์ถ๊ฐ
elif cnt == 1: # 'X'๊ฐ 1๊ฐ์ผ ๋๋ ๋ฎ์ ์ ์์ผ๋ฏ๋ก -1 ๋ฐํ
return -1
elif cnt == 2: # 'X'๊ฐ 2๊ฐ์ผ ๋๋ 'BB'๋ก ๋ฎ์ ์ ์์
ans += 'BB.' # 'BB'๋ฅผ ์ถ๊ฐํ๊ณ '.'๋ ์ถ๊ฐ
cnt = 0 # ์นด์ดํฐ๋ฅผ ์ด๊ธฐํ
else: # 'X'๊ฐ 3๊ฐ์ผ ๊ฒฝ์ฐ ๋ฎ์ ์ ์์ผ๋ฏ๋ก -1 ๋ฐํ
return -1
# ๋ฐ๋ณต๋ฌธ์ด ๋๋ ํ ๋จ์์๋ 'X'์ ๊ฐ์๋ฅผ ํ์ธ
if cnt == 0: # ๋จ์ 'X'๊ฐ ์๋ ๊ฒฝ์ฐ
return ans # ๊ฒฐ๊ณผ ๋ฐํ
elif cnt == 1: # 'X'๊ฐ 1๊ฐ์ผ ๋๋ ๋ฎ์ ์ ์์ผ๋ฏ๋ก -1 ๋ฐํ
return -1
elif cnt == 2: # 'X'๊ฐ 2๊ฐ์ผ ๋๋ 'BB'๋ก ๋ฎ์ ์ ์์
ans += 'BB'
return ans # ๊ฒฐ๊ณผ ๋ฐํ
else: # 'X'๊ฐ 3๊ฐ์ผ ๊ฒฝ์ฐ ๋ฎ์ ์ ์์ผ๋ฏ๋ก -1 ๋ฐํ
return -1
# ๊ฒฐ๊ณผ ์ถ๋ ฅ
print(sol())
3. ์ฝ๋์ค๋ช
1) ๋ณ์ ์ด๊ธฐํ
- board๋ ์ ๋ ฅ๋ฐ์ ๋ฌธ์์ด์ ๋ฆฌ์คํธ๋ก ๋ณํํ์ฌ ์ ์ฅํฉ๋๋ค.
- cnt๋ ‘X’์ ๊ฐ์๋ฅผ ์ธ๊ธฐ ์ํ ๋ณ์๋ก, ์ด๊ธฐ๊ฐ์ 0์ ๋๋ค.
- ans๋ ์ต์ข ๋ณํ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ ๋ฌธ์์ด์ ๋๋ค.
2) ๋ณด๋ ํ์ ๋ฐ ๋ณํ ์ํ
- ๋ณด๋๋ฅผ ์์ฐจ์ ์ผ๋ก ํ์ํ๋ฉฐ, ‘X’์ ์ฐ์๋ ๊ฐ์๋ฅผ ์ธ์ด ๊ทธ์ ๋ง๋ ํจํด(‘AAAA’ ๋๋ ‘BB’)์ผ๋ก ๋ณํํฉ๋๋ค.
- ๋ง์ฝ 4๊ฐ์ ‘X’๊ฐ ์ฐ์์ผ๋ก ๋์ค๋ฉด ‘AAAA’๋ก ๋ณํํ์ฌ ans์ ์ถ๊ฐํ๊ณ , cnt๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
- ’.’์ด ๋์ค๋ฉด, ์ง๊ธ๊น์ง์ ‘X’ ๊ฐ์๋ฅผ ํ์ธํ์ฌ ์ ์ ํ ํจํด์ ans์ ์ถ๊ฐํฉ๋๋ค. ๋ง์ฝ ‘X’์ ๊ฐ์๊ฐ ๋ฎ์ ์ ์๋ 1๊ฐ๋ 3๊ฐ๋ผ๋ฉด ํจ์๋ -1์ ๋ฐํํฉ๋๋ค.
3) ๋จ์์๋ ‘X’ ์ฒ๋ฆฌ
- ํ์์ด ๋๋ ํ์๋ ‘X’๊ฐ ๋จ์์์ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋จ์ ‘X’์ ๊ฐ์์ ๋ฐ๋ผ ‘BB’๋ก ๋ฎ์ ์ ์๋์ง ํ์ธํ๊ณ , ๋ฎ์ ์ ์๋ ๊ฒฝ์ฐ -1์ ๋ฐํํฉ๋๋ค.
4) ๊ฒฐ๊ณผ ์ถ๋ ฅ
- ํจ์ sol()์ด ๋ฐํํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํฉ๋๋ค. ๋ง์ฝ -1์ด ๋ฐํ๋๋ฉด ๋ฎ์ ์ ์๋ ์ํฉ์ ์๋ฏธํฉ๋๋ค.
4. Github์ผ๋ก ํ์ธ
'๐ ์๊ณ ๋ฆฌ์ฆ > BOJ(๋ฐฑ์ค)_Python_Easy' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 2015[์๋ค์ ํฉ 4] (0) | 2024.08.24 |
---|---|
๋ฐฑ์ค 2178[๋ฏธ๋ก ํ์] (0) | 2024.08.18 |
๋ฐฑ์ค 2417[์ ์ ์ ๊ณฑ๊ทผ] (0) | 2024.08.09 |
๋ฐฑ์ค 1748[์ ์ด์ด ์ฐ๊ธฐ 1] (0) | 2024.08.09 |