공대생의 비망록

[프로그래머스][Lv. 1] 시저 암호 Swift 풀이 본문

Programming Language/Swift

[프로그래머스][Lv. 1] 시저 암호 Swift 풀이

myungsup1250 2022. 4. 1. 19:08

https://programmers.co.kr/learn/courses/30/lessons/12926

 

코딩테스트 연습 - 시저 암호

어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀

programmers.co.kr

풀이는 추후에 차차 올리도록 하겠습니다.

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
func solution(_ s:String, _ n:Int-> String {
    let letters: [String= (0..<26).map { String(UnicodeScalar("a".unicodeScalars.first!.value + $0)!) }
    var answer: String = ""    
    for ch in s {
        if ch == " " {
            answer += " "
        } else if ch.isUppercase {
            answer += letters[(letters.firstIndex(where: {$0 == String(ch.lowercased())})! + n ) % letters.count].uppercased()
        } else {
            answer += letters[(letters.firstIndex(where: {$0 == String(ch)})! + n ) % letters.count]
        }
    }
    
    return answer
}
cs
Comments