안녕하세요. 개발 중인 정주입니다.
오늘은 프로그래머스 - 시저 암호 문제를 풀었습니다.
목차
Github
GitHub - jeongju9216/SwiftAlgorithm: 스위프트 알고리즘
스위프트 알고리즘. Contribute to jeongju9216/SwiftAlgorithm development by creating an account on GitHub.
github.com
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/12926
코딩테스트 연습 - 시저 암호
어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀
programmers.co.kr
풀이
이번 문제는 문자열을 활용하는 문제였습니다.
c++처럼 Int로 변환한 뒤 처리하는 방법을 쓸까 index로 접근하는 방법을 쓸까 고민을 했는데요.
Swift에서는 String을 변환하는 작업이 비교적 편리하여 index로 접근하는 방법을 사용했습니다.
알파벳 전체 배열을 먼저 선언을 해뒀고 n을 더한 index를 알파벳 배열에서 찾아서 기존 문자와 대치 시켰습니다.
전체 코드
import Foundation
func solution(_ s:String, _ n:Int) -> String {
let alphabet = Array("abcdefghijklmnopqrstuvwxyz")
let result = s.map { s->Character in
if s == " " {
return s
} else {
let index = alphabet.firstIndex(of: Character(s.lowercased()))! + n
let char = alphabet[index%26]
return s.isLowercase ? char : Character(char.uppercased())
}
}
return String(result)
}
let s = "AB"
let n = 1
print(solution(s, n))
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.
안녕하세요. 개발 중인 정주입니다.
오늘은 프로그래머스 - 시저 암호 문제를 풀었습니다.
목차
Github
GitHub - jeongju9216/SwiftAlgorithm: 스위프트 알고리즘
스위프트 알고리즘. Contribute to jeongju9216/SwiftAlgorithm development by creating an account on GitHub.
github.com
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/12926
코딩테스트 연습 - 시저 암호
어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀
programmers.co.kr
풀이
이번 문제는 문자열을 활용하는 문제였습니다.
c++처럼 Int로 변환한 뒤 처리하는 방법을 쓸까 index로 접근하는 방법을 쓸까 고민을 했는데요.
Swift에서는 String을 변환하는 작업이 비교적 편리하여 index로 접근하는 방법을 사용했습니다.
알파벳 전체 배열을 먼저 선언을 해뒀고 n을 더한 index를 알파벳 배열에서 찾아서 기존 문자와 대치 시켰습니다.
전체 코드
import Foundation
func solution(_ s:String, _ n:Int) -> String {
let alphabet = Array("abcdefghijklmnopqrstuvwxyz")
let result = s.map { s->Character in
if s == " " {
return s
} else {
let index = alphabet.firstIndex(of: Character(s.lowercased()))! + n
let char = alphabet[index%26]
return s.isLowercase ? char : Character(char.uppercased())
}
}
return String(result)
}
let s = "AB"
let n = 1
print(solution(s, n))
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.