MUKER_DEV with iOS

[swift] ๋ฐฑ์ค€ - 11655๋ฒˆ: ROT13 ๋ณธ๋ฌธ

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜/BAEKJOON

[swift] ๋ฐฑ์ค€ - 11655๋ฒˆ: ROT13

MUKER 2023. 7. 31. 09:16
๋ฌธ์ œ ๋งํฌ
 

11655๋ฒˆ: ROT13

์ฒซ์งธ ์ค„์— ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž, ์†Œ๋ฌธ์ž, ๊ณต๋ฐฑ, ์ˆซ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. S์˜ ๊ธธ์ด๋Š” 100์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค.

www.acmicpc.net


๋ฌธ์ œ

ROT13์€ ์นด์ด์‚ฌ๋ฅด ์•”ํ˜ธ์˜ ์ผ์ข…์œผ๋กœ ์˜์–ด ์•ŒํŒŒ๋ฒณ์„ 13๊ธ€์ž์”ฉ ๋ฐ€์–ด์„œ ๋งŒ๋“ ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, "Baekjoon Online Judge"๋ฅผ ROT13์œผ๋กœ ์•”ํ˜ธํ™”ํ•˜๋ฉด "Onrxwbba Bayvar Whqtr"๊ฐ€ ๋œ๋‹ค. ROT13์œผ๋กœ ์•”ํ˜ธํ™”ํ•œ ๋‚ด์šฉ์„ ์›๋ž˜ ๋‚ด์šฉ์œผ๋กœ ๋ฐ”๊พธ๋ ค๋ฉด ์•”ํ˜ธํ™”ํ•œ ๋ฌธ์ž์—ด์„ ๋‹ค์‹œ ROT13ํ•˜๋ฉด ๋œ๋‹ค. ์•ž์—์„œ ์•”ํ˜ธํ™”ํ•œ ๋ฌธ์ž์—ด "Onrxwbba Bayvar Whqtr"์— ๋‹ค์‹œ ROT13์„ ์ ์šฉํ•˜๋ฉด "Baekjoon Online Judge"๊ฐ€ ๋œ๋‹ค.

ROT13์€ ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž์—๋งŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์•ŒํŒŒ๋ฒณ์ด ์•„๋‹Œ ๊ธ€์ž๋Š” ์›๋ž˜ ๊ธ€์ž ๊ทธ๋Œ€๋กœ ๋‚จ์•„ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, "One is 1"์„ ROT13์œผ๋กœ ์•”ํ˜ธํ™”ํ•˜๋ฉด "Bar vf 1"์ด ๋œ๋‹ค.

๋ฌธ์ž์—ด์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, "ROT13"์œผ๋กœ ์•”ํ˜ธํ™”ํ•œ ๋‹ค์Œ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž, ์†Œ๋ฌธ์ž, ๊ณต๋ฐฑ, ์ˆซ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. S์˜ ๊ธธ์ด๋Š” 100์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— S๋ฅผ ROT13์œผ๋กœ ์•”ํ˜ธํ™”ํ•œ ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•œ๋‹ค.

์˜ˆ์ œ


์„ฑ๊ณต ํ’€์ด

import Foundation

for char in Array(readLine()!) {
    let n = UnicodeScalar(String(char))!.value
    let r = n+13
    if n >= 65 && n <= 90 {
        print(r <= 90 ? UnicodeScalar(r)! : UnicodeScalar((r-90)+64)!, terminator: "")
    } else if n >= 97 && n <= 122 {
        print(r <= 122 ? UnicodeScalar(r)! : UnicodeScalar((r-122)+96)!, terminator: "")
    } else {
        print(char, terminator: "")
    }
}

ํ’€์ด ํ‚ค์›Œ๋“œ

  • ์•ŒํŒŒ๋ฒณ์— ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž ์•„์Šคํ‚ค ์ฝ”๋“œ์— 13์„ ๋”ํ•ด ์•Œ๋งž์€ ๋ฌธ์ž๋ฅผ ๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค.