๐ ๋ฌธ์
'์ด๋ฆ ๊ถํฉ'์ด๋ ๋ ์ฌ๋์ ์ด๋ฆ์ ํ ๊ธ์์ฉ ๋ฒ๊ฐ์ ์จ ๋๊ณ ํ์๋ฅผ ๊ทธ ์๋์ ์ ์ ๋ค, ์ธ์ ํ ์ซ์๋ผ๋ฆฌ ๋ํ ์ผ์ ์๋ฆฌ ๊ฐ์ ์๋์ ์ ์ด ๋๊ฐ๋ฉด์ ๋ง์ง๋ง์ ๋จ์ ๋ ์ซ์๋ฅผ ๋ณด๊ณ ๊ถํฉ์ด ๋ง๋ ์ ๋๋ฅผ ์์๋ณด๋ ์ผ์ข ์ ์ ์ด๋ค.
์์ง๋ '๊ทธ๋ '๋ฅผ ์์ง ๋ชปํ ๋ก๋งจํฐ์คํธ ์ข ๋ฏผ์ด๋ ์ด๋ ๋ ๊ทธ๋ ์ ์ด๋ฆ ๊ถํฉ์ ํ ๋ฒ ํด ๋ณด๊ธฐ๋ก ํ๋๋ฐ, ๊ทธ ๊ฒฐ๊ณผ๋ ์ถฉ๊ฒฉ์ ์ด์๋ค.
์ด ๊ฒฐ๊ณผ๋ฅผ ๋์ ํ ๋ฐ์๋ค์ผ ์ ์์๋ ์ข ๋ฏผ์ด๋ ์ด๊ฒ์ด ํ๋ ธ์์ ์ฆ๋ช ํ๊ธฐ ์ํด ์ด์ฌํ ๋จธ๋ฆฌ๋ฅผ ๊ตด๋ ธ๊ณ , ๋ค์๊ณผ ๊ฐ์ ๋ณ๋ช ๊ฑฐ๋ฆฌ๋ฅผ ์๊ฐํด ๋๋ค.
"'๊ทธ๋ '๋ ํ๊ตญ์ธ์ด ์๋๋๊น ํ๊ธ๋ก ์ด๋ฆ ๊ถํฉ์ ๋ณด๋ฉด ๊ฒฐ๊ณผ๊ฐ ์ด์ํ ๊ฒ์ด ๋น์ฐํ์ง! ์ธ๊ณ ๊ณต์ฉ์ด์ธ ์์ด ์ํ๋ฒณ์ผ๋ก ์ด๋ฆ์ ์ฐ๋ฉด ๊ฒฐ๊ณผ๊ฐ ์ ํํ๊ฒ ๋์ฌ ๊ฑฐ์ผ!"
๊ทธ๋์ ์ข ๋ฏผ์ด๋ ์ํ๋ฒณ ๋๋ฌธ์๋ก ์ด๋ฆ์ ์จ ๋๊ณ ์ด๋ฆ ๊ถํฉ์ ๋ณด๋ ค๊ณ ํ๋ค. ๊ทธ๋ฐ๋ฐ, ์ข ๋ฏผ์ด๋ ์์ผ๋ก ๊ณ์ฐ์ ํ๋ฉด ์ค์๋ฅผ ํ ๊น ๋๋ ค์ ๋น์ ์๊ฒ ํ๋ก๊ทธ๋จ์ ์ง ๋ฌ๋ผ๊ณ ๋ถํํ๋ค. ์ข ๋ฏผ์ด๋ฅผ ๋์์ฃผ์! ์ข ๋ฏผ์ด๊ฐ ์ ํ ์ํ๋ฒณ ๋๋ฌธ์์ ํ์๋ ํํธ๋ฅผ ์ฐธ๊ณ ํ์.
๐ ์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์๋ ์ข ๋ฏผ์ด์ ์์ด ์ด๋ฆ A๊ฐ ์ฃผ์ด์ง๋ค.
๋ ๋ฒ์งธ ์ค์๋ '๊ทธ๋ '์ ์์ด ์ด๋ฆ B๊ฐ ์ฃผ์ด์ง๋ค.
โA์ B ๋ชจ๋ ์ํ๋ฒณ ๋๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ง ๊ธธ์ด 2 ์ด์ 2000 ์ดํ์ ๋ฌธ์์ด์ด๋ฉฐ, ๋์ ๊ธธ์ด๊ฐ ๊ฐ์์ด ๋ณด์ฅ๋๋ค. ์ด๋ฆ ๊ถํฉ์ ๋ณผ ๋๋ A์ ์ฒซ ๊ธ์๋ฅผ ๋จผ์ ์ด๋ค๊ณ ํ์.
๐ ์ถ๋ ฅ
์ด๋ฆ ๊ถํฉ์ ๊ฒฐ๊ณผ๋ฅผ ๋ ์๋ฆฌ์ ์ซ์๋ก ์ถ๋ ฅํ๋ค. (์ญ์ ์๋ฆฌ๊ฐ 0์ด์ด๋ ๋ ์๋ฆฌ๋ก ์ถ๋ ฅํ๋ค)
๐ ํํธ
์์ด ๋๋ฌธ์ ์ํ๋ฒณ 26๊ฐ์ ํ์๋ ์์๋๋ก 3, 2, 1, 2, 3, 3, 2, 3, 3, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1 ๋ก ์ ํ๋ค. (์ถ์ ์๊ฐ ์ํ๋ฒณ ๋๋ฌธ์๋ฅผ ์ฐ๋ ๋ฐฉ๋ฒ์ด ๊ธฐ์ค์ด๋ค)
๐ ๋ฌธ์ ํด์
์ด๋ฆ์ ์์๋๋ก ๊ณ์ ๋ํด๊ฐ๋ฉด ๋๋ ๋ฌธ์ ์ด๋ค.
์ฒ์์๋ ํ์ค์นผ์ ์ผ๊ฐํ ๊ฐ์ ์ํ ๊ณต์์ ์ด์ฉํ์ฌ ํ๋ ค๊ณ ํด๋ณด์์ง๋ง ํด๋ต์ด ๋ ์ค๋ฅด์ง ์์ ์คํจํ์๋ค.ใ
๊ทธ๋์ ๊ทธ๋ฅ dp๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํ์๋ค.
๐ ํ์ด
์ฐ์ ์ํ๋ฒณ์ ์ซ์๋ก ๋ฐ๊พธ์ด ์ฃผ๋ ์์ ๊ณผ ๋ ์ด๋ฆ์ ํฉ์น๋ ์์ ์ ํ์๋ค.
๊ทธ๋ฆฌ๊ณ dp ํ ์ด๋ธ์ ๋ฐํ ์ ๋ฐฉ์์ผ๋ก ์ด๋ฆ์ ๋ํ ๊ฐ์ ์ถ๊ฐํด์ฃผ์๋ค.
๐ป ์ฝ๋
A = input()
B = input()
alpha = [3, 2, 1, 2, 3, 3, 2, 3, 3, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1]
dp = [[0 for i in range(2*len(A))] for j in range(2*len(A)-1)]
for i in range(len(A)+1):
if i != len(A):
dp[0][i*2] = alpha[ord(A[i])-65] # ์ง์์นธ์ A ์ด๋ฆ ์ฝ์
if i != 0:
dp[0][i*2-1] = alpha[ord(B[i-1])-65] # ํ์ ์นธ์ B ์ด๋ฆ ์ฝ์
for i in range(1, 2*len(A)-1):
for j in range(2*len(A)-i):
dp[i][j] = int(str(dp[i-1][j] + dp[i-1][j+1])[-1]) # ์์ ๋๊ฐ๋ฅผ ๋ํ ๊ฒ์ ๋ง์ง๋ง์๋ฆฌ์
print(dp[-1][0], dp[-1][1], sep='')
'Problem Solving > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 13023๋ฒ: ABCDE - ํ์ด์ฌ (0) | 2022.06.15 |
---|---|
[๋ฐฑ์ค] 1331๋ฒ: ๋์ดํธ ํฌ์ด - ํ์ด์ฌ (0) | 2022.06.13 |
[๋ฐฑ์ค] 1107๋ฒ: ๋ฆฌ๋ชจ์ฝ - ํ์ด์ฌ (0) | 2022.06.10 |
[๋ฐฑ์ค] 13565๋ฒ: ์นจํฌ - ํ์ด์ฌ (0) | 2022.06.09 |
[๋ฐฑ์ค] 1926๋ฒ: ๊ทธ๋ฆผ - ํ์ด์ฌ (0) | 2022.06.08 |