티스토리 뷰
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/12948
<나의 풀이>
func solution(_ phone_number:String) -> String {
// 제한 조건
if phone_number.count < 4 || phone_number.count > 20 {
return ""
}
// 문자열의 맨 뒤에서 4번째 인덱스를 가져옴
// (index 메서드를 사용하면 문자열도 배열처럼 사용할 수 있다!)
let index = phone_number.index(phone_number.endIndex, offsetBy: -4)
// 가져온 전화번호의 뒷 4자리를 제외한 숫자 개수만큼 *로 처리 하고, 뒷 4자리를 붙여줌
var result = String(repeating: "*" , count: phone_number.count - 4) + phone_number[index...]
return result
}
<다른 사람의 풀이>
func solution(_ phone_number:String) -> String {
return String("\(String(repeating: "*", count: phone_number.count - 4))\(phone_number.suffix(4))")
}
- 덧셈연산자(+)가 아닌, 문자열보간법으로 문자들을 이어준 점이 신기했다!
func solution(_ phone_number:String) -> String {
guard phone_number.count > 4 else { return phone_number }
return String(phone_number.enumerated().map{($0.offset<phone_number.count-4 ? Character("*") : $0.element)})
}
// -----------------------
// offset이 무엇인지 찍어보자!
// -----------------------
print(phone_number.enumerated().map{$0.offset}) // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- offset을 사용하면 해당 인자의 인덱스 배열을 알 수 있다.
- 반대로 element를 사용하면 해당 인자 값을 가져올 수 있다.
728x90
반응형
'[프로그래머스] > ㄴ코테연습 : Level 1' 카테고리의 다른 글
[프로그래머스] 행렬의 덧셈 (Swift) (0) | 2022.06.26 |
---|---|
[프로그래머스] x만큼 간격이 있는 n개의 숫자 (Swift) (0) | 2022.06.24 |
[프로그래머스] 직사각형 별찍기 (Swift) (1) | 2022.06.24 |
댓글
250x250
반응형
TAG
- 피보나치
- GIT
- 유닉스커맨드
- 월간 코드 챌린지 시즌2
- x만큼간격이있는n개의숫자
- 백준
- 설치
- 컴퓨터개론
- 알고리즘
- 이진탐색
- SWiFT
- 프로그래머스코딩테스트
- 파이썬
- 코드잇
- 조합
- 정렬
- 프로그래밍언어
- level1
- 알고리즘문제
- 재귀함수
- 파이썬문법
- 코딩테스트
- KAKAO
- 프로그래머스
- level2
- 문법
- 프로그래머스 프로그래머스문제
- 프로그래머스문제
- 월간 코드 챌린지 시즌1
- Summer/Winter Coding(~2018)
최근에 달린 댓글
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
링크
- Total
- Today
- Yesterday