We will find a way, we always have.

-interstellar

Problem Solving/๋ฐฑ์ค€

[๋ฐฑ์ค€] 15312๋ฒˆ: ์ด๋ฆ„ ๊ถํ•ฉ - ํŒŒ์ด์ฌ

Redddy 2022. 6. 13. 21:20

๐Ÿ”ˆ ๋ฌธ์ œ

'์ด๋ฆ„ ๊ถํ•ฉ'์ด๋ž€ ๋‘ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„์„ ํ•œ ๊ธ€์ž์”ฉ ๋ฒˆ๊ฐˆ์•„ ์จ ๋†“๊ณ  ํš์ˆ˜๋ฅผ ๊ทธ ์•„๋ž˜์— ์ ์€ ๋’ค, ์ธ์ ‘ํ•œ ์ˆซ์ž๋ผ๋ฆฌ ๋”ํ•œ ์ผ์˜ ์ž๋ฆฌ ๊ฐ’์„ ์•„๋ž˜์— ์ ์–ด ๋‚˜๊ฐ€๋ฉด์„œ ๋งˆ์ง€๋ง‰์— ๋‚จ์€ ๋‘ ์ˆซ์ž๋ฅผ ๋ณด๊ณ  ๊ถํ•ฉ์ด ๋งž๋Š” ์ •๋„๋ฅผ ์•Œ์•„๋ณด๋Š” ์ผ์ข…์˜ ์ ์ด๋‹ค.
์•„์ง๋„ '๊ทธ๋…€'๋ฅผ ์žŠ์ง€ ๋ชปํ•œ ๋กœ๋งจํ‹ฐ์ŠคํŠธ ์ข…๋ฏผ์ด๋Š” ์–ด๋Š ๋‚  ๊ทธ๋…€์™€ ์ด๋ฆ„ ๊ถํ•ฉ์„ ํ•œ ๋ฒˆ ํ•ด ๋ณด๊ธฐ๋กœ ํ–ˆ๋Š”๋ฐ, ๊ทธ ๊ฒฐ๊ณผ๋Š” ์ถฉ๊ฒฉ์ ์ด์—ˆ๋‹ค.

์ด ๊ฒฐ๊ณผ๋ฅผ ๋„์ €ํžˆ ๋ฐ›์•„๋“ค์ผ ์ˆ˜ ์—†์—ˆ๋˜ ์ข…๋ฏผ์ด๋Š” ์ด๊ฒƒ์ด ํ‹€๋ ธ์Œ์„ ์ฆ๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ์—ด์‹ฌํžˆ ๋จธ๋ฆฌ๋ฅผ ๊ตด๋ ธ๊ณ , ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ณ€๋ช…๊ฑฐ๋ฆฌ๋ฅผ ์ƒ๊ฐํ•ด ๋ƒˆ๋‹ค.
"'๊ทธ๋…€'๋Š” ํ•œ๊ตญ์ธ์ด ์•„๋‹ˆ๋‹ˆ๊นŒ ํ•œ๊ธ€๋กœ ์ด๋ฆ„ ๊ถํ•ฉ์„ ๋ณด๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ์ด์ƒํ•œ ๊ฒƒ์ด ๋‹น์—ฐํ•˜์ง€! ์„ธ๊ณ„ ๊ณต์šฉ์–ด์ธ ์˜์–ด ์•ŒํŒŒ๋ฒณ์œผ๋กœ ์ด๋ฆ„์„ ์“ฐ๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ์ •ํ™•ํ•˜๊ฒŒ ๋‚˜์˜ฌ ๊ฑฐ์•ผ!"
๊ทธ๋ž˜์„œ ์ข…๋ฏผ์ด๋Š” ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋กœ ์ด๋ฆ„์„ ์จ ๋†“๊ณ  ์ด๋ฆ„ ๊ถํ•ฉ์„ ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ์ข…๋ฏผ์ด๋Š” ์†์œผ๋กœ ๊ณ„์‚ฐ์„ ํ•˜๋ฉด ์‹ค์ˆ˜๋ฅผ ํ• ๊นŒ ๋‘๋ ค์›Œ ๋‹น์‹ ์—๊ฒŒ ํ”„๋กœ๊ทธ๋žจ์„ ์งœ ๋‹ฌ๋ผ๊ณ  ๋ถ€ํƒํ–ˆ๋‹ค. ์ข…๋ฏผ์ด๋ฅผ ๋„์™€์ฃผ์ž! ์ข…๋ฏผ์ด๊ฐ€ ์ •ํ•œ ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž์˜ ํš์ˆ˜๋Š” ํžŒํŠธ๋ฅผ ์ฐธ๊ณ ํ•˜์ž.

 

๐Ÿ“ ์ž…๋ ฅ

์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” ์ข…๋ฏผ์ด์˜ ์˜์–ด ์ด๋ฆ„ 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='')