2024. 6. 13. 14:29ㆍ코딩테스트
코딩 테스트를 푼 것을 오늘도 어김없이 정리를 하고 있당,,,
// 첫 번째로 나오는 음수
class Solution {
fun solution(num_list: IntArray): Int {
var answer: Int = 0
for (i in num_list.indices){
if (num_list[i] < 0 ) {
answer = i
break
}else {
answer = -1
}
}
return answer
}
}
리스트에서 첫 번째로 나오는 음수를 구하는 거였기 때문에 for으로 돌린 다음에
if 조건절로 0보다 작은 그 인덱스 값을 answer에 넣어주고,,,
첫번째 나오는 음수이기 때문에 나오게 되면 break를 걸어주었다....
이게 아니라면 else로 -1로 answer에 값을 넣어주었다.
// 중앙값 구하기
class Solution {
fun solution(array: IntArray): Int = array.sorted()[array.size / 2]
}
중앙값을 구한다는 것은 그 중간의 값을 구하는 것이라고 생각했기 때문에,, 우선적으로 sorted로 정렬을 해준 다음에 array.size 를 2로 나눈 값을 구하는 것으로 값을 구했다.
// 부분 문자열인지 확인하기
class Solution {
fun solution(my_string: String, target: String): Int =
if (my_string.contains(target)) 1 else 0
}
이건 간단하게 contains 문법을 이용해서 포함하면 1을 아니라면 0을 리턴하는 거로 문제를 풀어주었다.
// 최댓값 구하기 1
class Solution {
fun solution(numbers: IntArray): Int {
val list = numbers.sorted()
var answer = (list.last()) * (list[list.size - 2])
return answer
}
}
이게 최댓값을 구하는 문제이므로 리스트를 정렬해주고 가장 끝에 있는 두 개를 곱해주면 될 거라고 생각했다...
우선 numbers에 sorted을 사용해서 정렬을 해주고 list에 선언해주고...
그래서 list.last와 list.size -2 를 곱한 값을 answer에 선언해주고 이를 리턴해주면 값을 구할 수 있었다.
// 문자열의 앞의 n글자
class Solution {
fun solution(my_string: String, n: Int): String = my_string.substring(0, n)
}
0부터 n글자까지의 문자열을 잘라서 구하는 것으로 substring을 이용해서 계산을 해주었다.
참고로 substring() 메소드는 string 객체의 시작 인덱스로 부터 종료 인덱스 전 까지 문자열의 부분 문자열을 반환한다.
// 세균 증식
class Solution {
fun solution(n: Int, t: Int): Int {
var answer = n
repeat(t){
answer *= 2
}
return answer
}
}
repeat를 이용해서 계속해서 2씩 증가를 할 수 있도록 해주었다.
참고로 repeat는 t번 반복하는 반복문으로,,,
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/repeat.html
repeat - Kotlin Programming Language
kotlinlang.org
for (i in 0..t-1)
repeat 대신 for 반복문을 사용해도 문제를 풀 수 있다!
'코딩테스트' 카테고리의 다른 글
TIL 20240621 코딩 테스트(12) (0) | 2024.06.21 |
---|---|
TIL 20240619 코딩 테스트(11) (0) | 2024.06.19 |
TIL 20240609 코딩 테스트(9) (0) | 2024.06.09 |
TIL 20240607 코딩 테스트(8) (0) | 2024.06.07 |
TIL 20240605 코딩테스트 (7) (1) | 2024.06.05 |