-
[프로그래머스][Swift] 시저 암호알고리즘 2022. 6. 28. 13:21728x90
func solution(_ s:String, _ n:Int) -> String { var arr: [String] = Array<String>() var result: String = String() for (_, str) in s.enumerated() { arr.append(String(str)) } for i in 0..<arr.count { if arr[i] != " " { var value = UnicodeScalar(arr[i])!.value if value >= 65 && value <= 90 { value = (value + UInt32(n) - 65) % 26 + 65 } else { value = (value + UInt32(n) - 97) % 26 + 97 } result += String(UnicodeScalar(value)!) } else { result += arr[i] } } return result } print(solution("ABZ", 1)) print(solution("a B z", 4))
피드백
아스키코드를 이용할 것이고, 알파벳이 26개니까 26으로 나눠서 나머지를 이용하겠다고 풀이 방식은 생각했지만 코드로 구현하는 게 쉽지 않았음
문자열을 나눌 때 map 을 이용하는 방식을 생각할 수 있도록 연습하기
let str: String = "BSJEOF" print(str.map { $0 }) // ["B", "S", "J", "E", "O", "F"]
'알고리즘' 카테고리의 다른 글
[프로그래머스][Swift] 부족한 금액 계산하기 (0) 2022.07.01 [프로그래머스][Swift] 문자열 다루기 기본 (0) 2022.06.29 [프로그래머스][Swift] 자릿수 더하기 (0) 2022.06.26 [프로그래머스][Swift] 약수의 합 (0) 2022.06.26 [백준 2522][Swift] 별 찍기 - 12 (0) 2022.04.01