티스토리 뷰
728x90
https://programmers.co.kr/learn/courses/30/lessons/12926
내 풀이
못 푼 문제
못 푼 문제는 주말에 복습!
다른사람의 풀이
func solution(_ s: String, _ n: Int) -> String {
let alphabets = "abcdefghijklmnopqrstuvwxyz".map { $0 }
return String(s.map({
guard let index = alphabets.firstIndex(of: Character($0.lowercased())) else { return $0 }
let letter = alphabets[(index + n) % alphabets.count]
return $0.isUppercase ? Character(letter.uppercased()) : letter
}))
}
solution("aBaSaB", 1)
풀이
더보기
1. 알파벳을 문자열로 배열한뒤 map으로 하나씩 정렬 합니다.
2. 파라미터 s의 값이 비었을 경우 guard let 으로 ""를 반환하게 걸러줍니다.
3. 파라미터 s의 전체값을 소문자로 바꾸고 (lowercased()) map으로 하나씩 순회하며 alphabets.firstIndex(of:)로 해당 index 를 가져와 저장 합니다.
4. z 이후에 다시 a 부터 시작해야 하므로 [(index + n) % alphabets.count] 로 처음으로 돌아갈 수 있게 조절해줍니다.
5. s에 대문자가 있다면 (isUppercase) 해당 부분은 대문자로 바꿔주고 (.uppercased()) 소문자면 소문자로 반환해줍니다.
배운것
firstIndex(of:)
(of: element) element에 일치하는 값의 index를 반환 합니다.
예제
var students = ["Ben", "Ivy", "Jordell", "Maxime"]
// element에 일치하는 값이 있는지 확인 (if let)
// 있으면: i = 일치하는 값의 index
// 없으면: pass
if let i = students.firstIndex(of: "Maxime") {
// i = 3
students[i] = "Max"
}
print(students)
// Prints "["Ben", "Ivy", "Jordell", "Max"]"
728x90
'알고리즘' 카테고리의 다른 글
[Swift 알고리즘] - 이상한 문자 만들기(Programmers) (0) | 2022.05.16 |
---|---|
[Swift 알고리즘] - 콜라츠 추측 (Programmers) (0) | 2022.05.13 |
[Swift 알고리즘] - Max Consecutive Ones (연속되는 숫자 1의 최대값 구하기) (0) | 2022.05.10 |
[Swift 알고리즘] - 약수의 합 (0) | 2022.05.04 |
[Swift 알고리즘] - 핸드폰 번호 가리기 (0) | 2022.05.03 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Swift joined()
- Swift 프로그래머스
- Swift ModernRIBs
- removeLast()
- Swift 내림차순
- Swift RIBs
- Swift 프로퍼티
- Combine: Asynchronous Programming with Swift
- RIBs tutorial
- swift 고차함수
- Swift inout
- 원티드 프리온보딩
- Swift final
- Swift init
- Swift Leetcode
- swift reduce
- swift programmers
- Swift Error Handling
- Swift joined
- swift property
- Class
- iOS error
- CS 네트워크
- RTCCameraVideoCapturer
- swift (programmers)
- 2023년 회고
- Swift 알고리즘
- Swift
- swift protocol
- ios
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함