๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ”น Programming/๐Ÿ“ Algorithm

[๋ฐฑ์ค€ ๋ฌธ์ œ ํ’€์ด / Python] 5622๋ฒˆ : ๋‹ค์ด์–ผ

# 5622 : ๋‹ค์ด์–ผ


์ƒ๊ทผ์ด์˜ ํ• ๋จธ๋‹ˆ๋Š” ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์˜ค๋ž˜๋œ ๋‹ค์ด์–ผ ์ „ํ™”๊ธฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์ „ํ™”๋ฅผ ๊ฑธ๊ณ  ์‹ถ์€ ๋ฒˆํ˜ธ๊ฐ€ ์žˆ๋‹ค๋ฉด, ์ˆซ์ž๋ฅผ ํ•˜๋‚˜๋ฅผ ๋ˆ„๋ฅธ ๋‹ค์Œ์— ๊ธˆ์† ํ•€์ด ์žˆ๋Š” ๊ณณ ๊นŒ์ง€ ์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ๋Œ๋ ค์•ผ ํ•œ๋‹ค. ์ˆซ์ž๋ฅผ ํ•˜๋‚˜ ๋ˆ„๋ฅด๋ฉด ๋‹ค์ด์–ผ์ด ์ฒ˜์Œ ์œ„์น˜๋กœ ๋Œ์•„๊ฐ€๊ณ , ๋‹ค์Œ ์ˆซ์ž๋ฅผ ๋ˆ„๋ฅด๋ ค๋ฉด ๋‹ค์ด์–ผ์„ ์ฒ˜์Œ ์œ„์น˜์—์„œ ๋‹ค์‹œ ๋Œ๋ ค์•ผ ํ•œ๋‹ค.

์ˆซ์ž 1์„ ๊ฑธ๋ ค๋ฉด ์ด 2์ดˆ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. 1๋ณด๋‹ค ํฐ ์ˆ˜๋ฅผ ๊ฑฐ๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์€ ์ด๋ณด๋‹ค ๋” ๊ฑธ๋ฆฌ๋ฉฐ, ํ•œ ์นธ ์˜†์— ์žˆ๋Š” ์ˆซ์ž๋ฅผ ๊ฑธ๊ธฐ ์œ„ํ•ด์„  1์ดˆ์”ฉ ๋” ๊ฑธ๋ฆฐ๋‹ค.

์ƒ๊ทผ์ด์˜ ํ• ๋จธ๋‹ˆ๋Š” ์ „ํ™” ๋ฒˆํ˜ธ๋ฅผ ๊ฐ ์ˆซ์ž์— ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž๋กœ ์™ธ์šด๋‹ค. ์ฆ‰, ์–ด๋–ค ๋‹จ์–ด๋ฅผ ๊ฑธ ๋•Œ, ๊ฐ ์•ŒํŒŒ๋ฒณ์— ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž๋ฅผ ๊ฑธ๋ฉด ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, UNUCIC๋Š” 868242์™€ ๊ฐ™๋‹ค.

ํ• ๋จธ๋‹ˆ๊ฐ€ ์™ธ์šด ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด ์ „ํ™”๋ฅผ ๊ฑธ๊ธฐ ์œ„ํ•ด์„œ ํ•„์š”ํ•œ ์ตœ์†Œ ์‹œ๊ฐ„์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

๋ฌธ์ œ ๋ณด๊ธฐ


๐Ÿงช How to approach

  • ์ž…๋ ฅ๋œ str ํƒ€์ž…์˜ ๋‹จ์–ด๋ฅผ text ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•˜๊ณ , ๋‹ค์ด์–ผ ์ „ํ™”๊ธฐ์˜ ๊ฐ ๋ฒˆํ˜ธ์— ํ•ด๋‹นํ•˜๋Š” ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋“ค์˜ ๋ฆฌ์ŠคํŠธ(di)๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • ์ตœ์ข… ์ถœ๋ ฅ๋  ๊ฐ’์„ output ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•˜๊ณ  0์œผ๋กœ ์ •์˜ํ•œ๋‹ค.
  • ์ด์ค‘ for๋ฌธ์„ ํ†ตํ•ด text์˜ ๋ฌธ์ž์—ด(i)์ด di ๋ฆฌ์ŠคํŠธ์˜ ๋ฌธ์ž์—ด(j)์— ํฌํ•จ ๋˜์—ˆ๋Š”์ง€ ์กฐํšŒํ•œ๋‹ค.
  • if๋ฌธ์ด ์ฐธ์ด๋ผ๋ฉด, j์˜ ์ธ๋ฑ์Šค ์œ„์น˜*1 (ํ•ด๋‹น ์ˆซ์ž์— ํ•ด๋‹นํ•˜๋Š” ๋ฆฌ์ŠคํŠธ ์ธ๋ฑ์Šค ๊ฐ’ * ์ˆซ์ž๋ฅผ ๊ฑธ๊ธฐ์œ„ํ•ด ์†Œ์š”๋˜๋Š” 1์ดˆ) + 3 ('1'๋กœ ์ด๋™์„ ์œ„ํ•œ 2์ดˆ + '1->2' ์ด๋™ ์‹œ ์†Œ์š”๋˜๋Š” 1์ดˆ)์˜ ๊ฐ’์„ output์— ๋”ํ•ด์ค€๋‹ค.
  • ๋ˆ„์ ๋œ output์˜ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ•ต๏ธ‍โ™‚๏ธ Solving problem

# 5622 : ๋‹ค์ด์–ผ

text = list(input())
di = ["ABC", "DEF", "GHI", "JKL", "MNO", "PQRS", "TUV", "WXYZ"]
output = 0

for i in text :
    for j in di :
        if i in j :
            output += di.index(j)*1+3           
print(output)

๐Ÿ‘ป Learning Points

  • ํŒŒ์ด์ฌ์˜ ์ธ๋ฑ์Šค(index)๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์— ์ฃผ์˜ํ•˜์—ฌ ๊ณ„์‚ฐํ•ด์•ผ ํ•˜๋ฉฐ, ์ฒซ๋ฒˆ์งธ ์ธ๋ฑ์Šค(์ „ํ™”๊ธฐ ์ˆซ์ž : 2 ("ABC")) ๋ถ€ํ„ฐ์˜ ์‹œ์ž‘์„ ์œ„ํ•ด์„œ๋Š” ์ฒซ๋ฒˆ์งธ ์ธ๋ฑ์Šค๋Š” ๋ฐ˜๋“œ์‹œ 3์ดˆ๊ฐ€ ์†Œ์š”๋œ๋‹ค.
  • ๋‘๋ฒˆ์งธ ์ธ๋ฑ์Šค(์ „ํ™”๊ธฐ ์ˆซ์ž : 3 ("DEF"))์˜ ๊ฒฝ์šฐ์—๋Š” ์ธ๋ฑ์Šค์˜ ๊ฐ’์ด 1์ด๋ฏ€๋กœ 1*1+3 = 4๊ฐ€ ๋œ๋‹ค.
  • ์—ฌ๊ธฐ์„œ ์ด๋™์„ ์œ„ํ•ด ์†Œ์š”๋˜๋Š” 1์ดˆ์— ๊ณฑํ•ด์ง€๋Š” ๊ฐ’์˜ ๊ฒฝ์šฐ์—๋Š” ๊ฑธ๊ณ ์ž ํ•˜๋Š” ์ˆซ์ž N์—์„œ ์‹œ์ž‘์  2๋ฅผ ๋นผ์ฃผ๋ฉด ์•Œ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋” ๋‚˜์•„๊ฐ€ ์ด๋Š” N์ด ๊ฐ–๋Š” ์•ŒํŒŒ๋ฒณ ๋ญ‰์น˜์˜ ์ธ๋ฑ์Šค ๊ฐ’๊ณผ ๋™์ผํ•˜๋‹ค.