2024. 2. 6. 20:26ㆍTIL
오늘은 코드 개선 과제용으로 제작한 Practice 프로젝트에 Validate 어노테이션을 이용해서 제한도 조금 걸어주고
가볍게 JPA 심화 강의를 보면서 시간을 보냈다.
오늘은 먼가 아침부터 집중도 잘 안되는 느낌이여서 무리하지않았다.
그리고나서 TIL을 작성해보려했는데 사실 그냥 강의를 보고 이론만 익힌 수준이라서 적는다면 강의자료를 복붙하는 수준이라 그냥 코드카타 풀이를 올린다.
코드카타 핸드폰 번호 가리기
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
- phone_number는 길이 4 이상, 20이하인 문자열입니다.
"01033334444" | "*******4444" |
"027778888" | "*****8888" |
일부 웹페이지에서 보안문제로 핸드폰번호를 마지막 4자리만 표시해주는듯한 그런 코드이다.
우선 for 문을 쓰면 될것 같다.
기본 제공해주는 phone_number 는 스트링형태고 반환으로 스트링을 반환해야한다.
class Solution {
fun solution(phone_number: String): String {
var answer = ""
for (i in 0 until phone_number.length - 4){
answer += "*"
}
for (i in phone_number.length - 4 until phone_number.length) {
answer += phone_number[i]
}
return answer
}
}
약간 주먹구구식으로 결과만 나오면 된다는 마인드로 코딩했다.
.length 함수로 몇자리가 나오든상관 없도록 최대길이를 정해주니까 나머지는 쉽게 이어졌다.
코틀린 없는 숫자 더하기
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ numbers의 길이 ≤ 9
- 0 ≤ numbers의 모든 원소 ≤ 9
- numbers의 모든 원소는 서로 다릅니다.
입출력 예numbersresult
[1,2,3,4,6,7,8,0] | 14 |
[5,8,4,0,6,7,9] | 6 |
입출력 예 설명
입출력 예 #1
- 5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다.
입출력 예 #2
- 1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다.
배열중 0부터 9까지 없는 숫자를 모두 더한값을 리턴해야한다.
나 같은 경우는 내가 알고있는 코드들로는 배열이 0에서 9를 가지고있는지 확인하는 함수를 작성하려면 상당히 복잡해질 것 같았다.
그래서 생각을 조금 꺾어서 없는 숫자를 모두 더하는거라면 0부터 9를 모두 더하고 배열을 전부 더한값을 빼도 같은 값이 나오지 않을까 생각을 했다.
(0부터 9를 더한값 45 - 배열모두를 더한값)를 반환하는 것이다!
여기선 sum()을 사용해봤다.
class Solution {
fun solution(numbers: IntArray): Int {
var answer: Int = 45 - numbers.sum()
return answer
}
}
다행히 실행도 반환도 잘 됐다.
뭐 다른사람의 풀이를 보니 filterNot 이나 contains 등 내가 모르는 함수들을 쓰는 경우도 있었다.
확실히 내가 한건 살짝 결과만 잘 나오면 그만인 식이라 이런 새로운 함수를 배우는것도 좋은 경험인것 같다.
'TIL' 카테고리의 다른 글
20240208 (목) 개인 주특기 플러스 8일차 (0) | 2024.02.08 |
---|---|
20240207 (수) 개인 주특기 플러스 7일차 (0) | 2024.02.07 |
20240205 (월) 개인 주특기 플러스 5일차 (1) | 2024.02.05 |
20240202 (금) 개인 주특기 플러스 주차 4일차 (0) | 2024.02.02 |
20240201 (목) 개인 주특기 플러스 주차 3일차 (0) | 2024.02.01 |