TIL 20240613 코딩 테스트(10)

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