옛날에 컴활 딸 때 이런 비슷한 걸 했던 것 같은데 🤔
어떤 메소드를 쓰는 걸까...
문자열 일부를 제외한 나머지를 일정한 값으로 바꾼다?
문자열을 map 메소드로 문자열배열로 바꾸고
for 반복문으로 인덱스가 문자열사이즈의 5보다 작거나 같으면 * 으로 값을 할당하고 크면 그대로 할당했다.
class Solution {
fun solution(phone_number: String): String {
var answer = ""
var p = phone_number.map{it.toString()}
for((index, value) in p.withIndex()) {
if(index <= p.size-5) {
answer += "*"
} else {
answer += value
}
}
return answer
}
}
다른 사람 풀이
class Solution {
fun solution(phone_number: String): String {
return "${"".padStart(phone_number.length - 4, '*')}${phone_number.takeLast(4)}"
}
}
padStart(데이터길이, "문자") / padEnd()
자바스크립트로 시계만들 때 썼었던 것 같다.
데이터의 길이를 지정하고 부족한 만큼 설정한 문자로 채운다.
뒷 네자리를 제외한 앞의 번호를 다 바꾸어야 하니 번호의 길이에서 4를 뺀 만큼을 "*"로 채우고
그 뒤는 takeLast() 메소드로 뒷 네자리를 가져온다.
take(n) / takeLast(n)
처음 n개 / 뒤에서 n개 를 반환한다.
'코딩테스트' 카테고리의 다른 글
프로그래머스 | 가운데 글자 가져오기 | Kotlin (1) | 2024.01.02 |
---|---|
프로그래머스 | 없는 숫자 더하기 (0) | 2023.12.28 |
프로그래머스 | 음양 더하기 (0) | 2023.12.26 |
프로그래머스 | 나누어 떨어지는 숫자 배열 (1) | 2023.12.26 |
프로그래머스 | 서울에서 김서방 찾기 (0) | 2023.12.26 |