๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm/๋ฐฑ์ค€(BOJ)

[ ํŒŒ์ด์ฌ(python) ] ๋ฐฑ์ค€ 5598 - ์นด์ด์‚ฌ๋ฅด ์•”ํ˜ธ

by YWTechIT 2021. 5. 11.
728x90

๐Ÿ“ ๋ฐฑ์ค€ 5598 - ์นด์ด์‚ฌ๋ฅด ์•”ํ˜ธ

๋ฐฑ์ค€ 5598 - ์นด์ด์‚ฌ๋ฅด ์•”ํ˜ธ


โšก๏ธ ๋‚˜์˜ ํ’€์ด

๋‚ด๊ฐ€ ํ’€์—ˆ๋˜ ํ•˜๋“œ์ฝ”๋”ฉ ๋ฐฉ์‹๋ณด๋‹ค๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ํ‘ผ ๋ฐฉ์‹์ด ์กฐ๊ธˆ ๋” ๊ดœ์ฐฎ์•„ ๋ณด์˜€๋‹ค.

 

  1. key์— 1๋ถ€ํ„ฐ 26๊นŒ์ง€ value์— ์•ŒํŒŒ๋ฒณ์„ dict์— ์„ ์–ธํ•œ๋‹ค.
  2. ์•ŒํŒŒ๋ฒณ ๋ฌธ์ž๋ฅผ 3๊ฐœ์”ฉ ๊ฑด๋„ˆ๋›ฐ๋Š”๋ฐ ๋‹ค๋ฅธ ๋ฌธ์ž๋Š” ์ƒ๊ด€์—†์ง€๋งŒ A, B, C๋Š” index_error๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
  3. ๋”ฐ๋ผ์„œ, ์ž…๋ ฅ์— A, B, C๊ฐ€ ํฌํ•จ๋˜์–ด์žˆ์œผ๋ฉด X, Y, Z์™€ ๋งค์นญ๋˜๊ฒŒํ•œ๋‹ค.
# ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ
s = input()
x = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

alphabet = {}
for i in range(1, 27):
    alphabet[i] = x[i-1]

temp = ''
for i in s:
    if i == 'A' or i == 'B' or i == 'C':
        temp += alphabet[ord(i)-41]
    else:
        temp += alphabet[ord(i)-67]
        
print(temp)

โšก๏ธ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด

๋ฌธ์ž์—ด ์Šฌ๋ผ์ด์‹ฑ์„ ์ด์šฉํ•œ ์ฝ”๋“œ

  1. index ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ s์—์„œ ์ž…๋ ฅ๋ฌธ์ž๊ฐ€ ๋ช‡ ๋ฒˆ์งธ์— ์œ„์น˜ํ•ด์žˆ๋Š”์ง€ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
  2. ํ•ด๋‹น ๊ฐ’์— -3์„ ํ•ด์ค€๋‹ค. (์•ŒํŒŒ๋ฒณ ๋ฌธ์ž๋ฅผ 3๊ฐœ์”ฉ ๊ฑด๋„ˆ๋›ด๋‹ค๋Š” ๊ทœ์น™)
  3. ์ž…๋ ฅ ์ค‘ A, B, C๊ฐ€ ๋‚˜์˜ค๋ฉด ์Œ์ˆ˜๊ฐ€ ๋˜๋Š”๋ฐ ์Šฌ๋ผ์ด์‹ฑ์—์„œ ์Œ์ˆ˜๋Š” ๋ฌธ์ž์—ด ์ œ์ผ ๋’ค์˜ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ X, Y, Z์™€ ๋งค์นญ ๋œ๋‹ค.
# .index๋ฅผ ์‚ฌ์šฉํ•œ ์ฝ”๋“œ
s = input()
x = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
temp = ''

for i in s:
    temp += x[x.index(i)-3]

print(temp)

 

์ •์„์ ์ธ ํ’€์ด ๋ฐฉ๋ฒ•

  1. ์•ŒํŒŒ๋ฒณ์„ ASCII์ฝ”๋“œ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ord()์— -68์„ ๋นผ์ค€๋‹ค.(65๋ฅผ ๋นผ์ฃผ๋ฉด 1๋ถ€ํ„ฐ ๋งค์นญ ๋˜์ง€๋งŒ ์นด์ด์‚ฌ๋ฅด ์•”ํ˜ธ๋Š” D๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— 3์„ ๋” ๋นผ์ค˜์„œ 1์ด D๋ถ€ํ„ฐ ์‹œ์ž‘๋œ๋‹ค.)
  2. A, B, C๋Š” ์Œ์ˆ˜ ์ฒ˜๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž์˜ ์ด ๊ฐœ์ˆ˜ 26์œผ๋กœ ๋‚˜๋ˆ ์ค€๋‹ค.
  3. A, B, C๋Š” X, Y, Z์™€ ๋งค์นญ ๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ 65๋ฅผ ๋”ํ•ด์ค€๋‹ค.(A: 88, B: 89, C: 90, D: 65...)
# ๋ง์…ˆ, ๋บผ์…ˆ์„ ์ด์šฉํ•œ ์ฝ”๋“œ
s = input()
x = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
temp = ''
for i in s:
    temp += chr(((ord(i) - 68) % 26) + 65)

print(temp)

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€