티스토리 뷰
2021 카카오 블라인드 채용 LV1
그냥 문제의 순서대로 메서드를 작성해서 풀었다
https://programmers.co.kr/learn/courses/30/lessons/72410
코딩테스트 연습 - 신규 아이디 추천
카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로
programmers.co.kr
import Foundation
func solution2(_ new_id:String) -> String {
var id = new_id
id = step1(id)
id = step2(id)
id = step3(id)
id = step4(id)
id = step5(id)
id = step6(id)
id = step4(id) // 앞 뒤 . 제거하는 함수 다시한번 호출
id = step7(id)
return id
}
func step1(_ id: String) -> String {
return id.lowercased() // 소문자로 치환
}
func step2(_ id: String) -> String {
let rule = ["-", "_", "."] // 사용가능한 문자
let newId = id.filter { c in
c.isLetter || c.isNumber || rule.contains(String(c)) // 다음의 조건만을 만족하는 아이디를 사용가능
}
return newId
}
func step3(_ id: String) -> String {
var newID = id
while newID.contains("..") { // .. 이 없을때까지 반복문을 돈다
newID = newID.replacingOccurrences(of: "..", with: ".") // .. 을 . 으로 교체
return newID
}
func step4(_ id: String) -> String {
var newId = id
newId = newId.trimmingCharacters(in: ["."]) // 양 끝에 있는 .을 제거
return newId
}
func step5(_ id: String) -> String {
if id == "" { // 빈 문자열이면
return "a" // a
} else {
return id
}
}
func step6(_ id: String) -> String {
var newId = id
while newId.count >= 16 { // 길이가 15보다 클경우
newId.removeLast() // 마지막 글자를 제거
}
//(newId.prefix(15).description) = String()
return newId
}
func step7(_ id: String) -> String {
var newId = id
while newId.count < 3 { // 길이가 3보다 작은경우
newId.append(newId.last!) // 마지막 글자를 append
}
return newId
}'코딩테스트' 카테고리의 다른 글
| Swift 크레인 인형뽑기 - 프로그래머스 (0) | 2022.06.02 |
|---|---|
| Swift 키패드누르기 - 프로그래머스 (0) | 2022.06.02 |
| Swift 숫자 문자열과 영단어 - 프로그래머스 (0) | 2022.06.02 |
| Swift 신고 결과 받기 - 프로그래머스 (0) | 2022.06.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Codable
- 롯데그룹 공개채용
- 반효경
- dataSource
- 프로젝트에 적용
- 야곰
- 운영체제
- UITableViewDataSource
- UITableViewDelegate
- 스토리보드 분할
- 의존성 주입
- 롯데 렌탈
- 공개 채용
- Parse
- 프로그래머스
- 화면 이동
- Decodable
- osi7계층
- 취준
- subscriber
- 코딩테스트
- Encodable
- 야곰 아카데미
- Combine
- Operator
- 개발자 취업
- Publisher
- DIP
- ios
- Swift
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함