https://school.programmers.co.kr/learn/courses/30/lessons/155652
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import Foundation
func solution(_ s:String, _ skip:String, _ index:Int) -> String {
let initAlphabet = Unicode.Scalar("a")
let endAlphabet = Unicode.Scalar("z")
var skipArray: [String] = []
var alphabetArray: [String] = []
//MARK: skipArray 각 단어를 String자료형 배열로 만듦
for word in skip{
skipArray.append(String(word))
}
//MARK: a부터 z중에 skipArray에 포함되어 있지 않은 문자열만 추출해 alphabetArray에 담음
for value in initAlphabet.value...endAlphabet.value{
if let val = Unicode.Scalar(value){
if !skipArray.contains(String(val)){
alphabetArray.append(String(val))
}
}
}
/*
알파벳은 총 26개, Skip은 최대 10개
만약 skip이 최대 갯수여서 10개면 알파벳은 16개가 됨
거기에 마지막 알파벳의 index가 최대 20일 경우를 대비해 array를 3번 더해줌
*/
alphabetArray = alphabetArray + alphabetArray + alphabetArray
var result = ""
//MARK: 문자열이 같다면 index를 더해서 result에 추가
for word in s{
for arrayindex in 0..<alphabetArray.count / 3{
if alphabetArray[arrayindex] == String(word){
result += alphabetArray[arrayindex + index]
}
}
}
return result
}
'Swift랑 친해지기 > programmers 풀기' 카테고리의 다른 글
[프로그래머스] 카드뭉치 (Swift) (0) | 2023.02.21 |
---|---|
[프로그래머스] 종이 자르기 (Swift) (0) | 2023.02.10 |
[프로그래머스] 진료 순서 정하기 (Swift) (0) | 2023.01.24 |
[프로그래머스] 옹알이(2) (Swift) (0) | 2023.01.09 |
[프로그래머스] 개인정보 수집 유효기간 (Swift) (0) | 2023.01.08 |