2024. 6. 21. 00:07ㆍ코딩테스트
사이드 프로젝트 들어가서 바빠졌지만,,,
그래도 코딩 테스트 꾸준히 풀고 있으므로,,
정리도 꾸준히,,, ㅎㅎ
// 이어 붙인 수
class Solution {
fun solution(num_list: IntArray): Int {
val a = num_list.filter { it % 2 == 0 }.joinToString("").toInt()
val b = num_list.filter { it % 2 == 1 }.joinToString("").toInt()
return a + b
}
}
짝수값만 필터해서 a를 넣어주고, 홀수 값만 필터해서 b에 넣어서 더해주었다.
아 참고로 이어 붙은 수이므로, joinToString를 사용해주었다....
// 홀수 vs 짝수
class Solution {
fun solution(num_list: IntArray): Int {
var a = num_list.filterIndexed { index, _ -> index % 2 == 0}.sum()
var b = num_list.filterIndexed { index, _ -> index % 2 == 1}.sum()
return if( a >= b ) a else b
}
}
홀수, 짝수 각 인덱스를 선언과 할당해주고 각 합계의 크기를 비교해서 값을 추출해주는 문제였다..
그래서 filterIndexed는 리스트의 각 요소와 해당 요소의 인덱스를 사용하여 조건을 만족하는 요소들을 필터링하는 함수로, 이를 이용해서 문제를 풀어주었다....
여기서 _는 요소의 값을 무시한다는 의미고, sum()를 써서 합계를 구할 수 있다...
마지막으로 if 절을 이용해서 값을 비교하고 a가 크거나 같으면 a , 아니라면 b를 리턴하게 해주었다.
// 접미사인지 확인하기
class Solution {
fun solution(my_string: String, is_suffix: String): Int =
if(my_string.endsWith(is_suffix)) 1 else 0
}
앞서 접두사를 구한 것과 마찬가지로 문법을 사용해주었다....
if절을 이용해서 endsWith를 사용해서 이와 같으면 1을 아니라면 0라는 값이 나오도록 해주었다.
// 머쓱이보다 키 큰 사람
class Solution {
fun solution(array: IntArray, height: Int) = array.filter { it > height}.size
}
filter로 간단하게 풀어주었다... 머쓱이 보다 키가 크는 사람만 필터해서 그 size를 구해준당
// 개미군단
class Solution {
fun solution(hp: Int): Int = hp / 5 + (hp % 5 / 3) + (hp % 5 % 3)
}
말 그대로,
hp / 5 는 hp를 5로 나누어 떨어지는 최대 횟수로 하고
hp % 5 / 3는 5로 나눈 후 남은 나머지를 3으로 나누어 떨어지는 최대 횟수고
hp % 5 % 3는 주어진 hp를 5와 3과 1로 나누어 최소 몇 번의 연산이 필요한지 계산하는 것이다....
참고로,,, 1을 안써도 써도 똑같으니 안썼다... ㅎㅎ
흑,,, 사실 이거 너무 어려워서,,, 몇번이고 봤는지 모르겠다,,,,
흑 이거 정리하면 다시 한번 풀러가야지 ㅠㅠ
// 편지
class Solution {
fun solution(message: String): Int {
var answer: Int = 0
for (i in message){
answer++
}
return 2 * answer
}
}
for문을 이용해서 message의 길이를 구하는 거였다.. 그래서 글자가 있을 만큼 answer ++ 해주었고!
그 길이가 2cm 이므로 return 할 때는 2를 곱해준 다음 리턴을 해주었다.
다른 분이 푼걸 확인했었는데 length로 하면 더 간편케 구할 수 있었다...
'코딩테스트' 카테고리의 다른 글
TIL 20240629 코딩 테스트(14) (0) | 2024.06.29 |
---|---|
TIL 20240624 코딩 테스트(13) (1) | 2024.06.24 |
TIL 20240619 코딩 테스트(11) (0) | 2024.06.19 |
TIL 20240613 코딩 테스트(10) (0) | 2024.06.13 |
TIL 20240609 코딩 테스트(9) (0) | 2024.06.09 |