TIL 20231216 코딩테스트 (2)

2023. 12. 16. 22:56코딩테스트

후후 저번주에 이어서 그동안 풀었던걸  작성을 해보자면!! 

 


//11. 짝수와 홀수
class Solution {
    fun solution(num: Int): String {
        var answer = ""
        if (num%2==0){
            return "Even"
        }else return "Odd"
    }
}

 

이전에 풀었던 걸 가져왔는데! 각각 값마다 따로 return을 해주어서 했었다!

짝수의 조건을 먼저 걸고 그 외의(홀수)일 경우에는 else로 해서 값을 구했다!

class Solution {
    fun solution(num: Int): String = if (num % 2 == 0) "Even" else "Odd"
}

 

이렇게 간소화하게 풀 수도 있다고 생각한다!!

 

 

 


//12. 평균 구하기
class Solution {
    fun solution(arr: IntArray) = arr.average()
}

 

헉 이건 그냥 average() 함수를 줘서 간단하게 평균을 구할 수 있었다!!

 

 

 


// 13. 자릿수 더하기
class Solution {
    fun solution(n: Int): Int {
        var answer = 0
        var N = n
        while(N  != 0){
            answer += N % 10
            N /=10
        }
        return answer
    }
}

 

자릿수를 더한다는 거 자체가 123이면 1+2+3을 값을 구하라는 건데!

우선 변수명 N으로 해주고 while 반복문을 통해서 0이 아니라면 10으로 나눠서 123이라면 3을 answer의 값에 넣어주고

다시 /로 나머지 값을 N 값에 넣어줘서 반복문을 돌리게 한다! 그 값이 0이 되면 반복문은 종료를 하게 되고 answer에 합한 값이 리턴된다!

 

class Solution {
    fun solution(n: Int): Int = n.toString().toList().sumOf { it.digitToInt() }
}

 

다른 분의 코드를 찾아봤는데! 이런 코드도 있다고 한다! 참고하자!

 

 

 


// 14. 약수의 합
class Solution {
    fun solution(n: Int) = (1..n).filter { n % it == 0 }.sum()
}

 

1부터 n까지의 수를 필터를 해주어서 나눈 값이 0이라면, 즉 약수가 될 경우에만 합해주는 형식이다...

찾아보고 해본 거지만 filter이란 문법을 다시금 공부했으니까 기억을 잘 해서 다른 문제 풀 도 응용하자!!

 

 

 


//15. 나머지가 1이 되는 수 찾기
class Solution {
    fun solution(n: Int): Int {
        for (x in 2..n)
            if (n % x == 1){
                return x
            }
        return 0
    }
}

 

나머지가 1로 구하기 위해서는 %라는 연산자를 구해야하고!

0은 아무리 뭘 나눠도 0이므로 1부터 시작하여 n을 하면 된다!! 

전에 푼걸 가지고 왔는데 2부터 있어서 ?? 싶긴 했는데 ㅋㅋ 그래도 통과가 됏나보네 싶닼ㅋㅋ

무튼 다음엔 풀때는 1부터라고 생각하면서 풀어야징,,

 

 

 


//16. x만큼 간격이 있는 n개의 숫자
class Solution {
    fun solution(x: Int, n: Int)= LongArray(n) {x.toLong() * (it + 1)}
}

 

우선 LongArray(n)을 작성하여 n 크기의 Long 타입 배열을 생성하고 반환한다.  x.toLong()x 값을 Long 화 한 것이다.

(it + 1)에서 it은 현재 인덱스(0부터 시작)를 나타내며, 이를 기반으로 각 요소에 할당될 값은 xLong 타입 값에 (it + 1)을 곱한 값이다.

 

이거 내가 어찌 풀었지? 싶다 ,,,

다시 풀어봐야지,,,

흑 참고한다고 풀고 제대로 정리를 한 상태가 아니니 가물가물하다,,

늦기 전에 다시 살펴볼 필요성을 느낀다

 

 

 


// 17. 자연수 뒤집어 배열로 만들기
class Solution {
    fun solution(n: Long): IntArray =n.toString().reversed().map{e->e.toString().toInt()}.toIntArray()
}

 

n의 값을 스트링화하고 reversed()의 함수를 이용해 뒤집어준다.

그러고 나서 map으로 돌려주어 스트링화와 정수화를 한 다음 정수형 배열로 반환해주므로 이 또한 정수형 배열화 해준다.

와 내가 이걸 어떻게 풀었지 싶다,,

아마도,, 어려워가지고 참고하면서 풀었던 것 같은데,,

다시 이따 안보고 풀어봐야지 싶다 ㅠㅠ 흑 reversed는 알고 있긴했는데,, 

위처럼 적용하긴 어렵네,, 

 

e-> e 대신 it를 사용해도 무방하다고 한다!!

 

 


// 18. 문자열을 정수로 바꾸기
class Solution {
    fun solution(s: String): Int {
        return s.toInt()
    }
}

 

그냥 toInt를 사용해서 간단히 s를 정수로 바꿔주었다!!!

이 문제는 수월히 풀었던 것 같다!

'코딩테스트' 카테고리의 다른 글

TIL 20240601 코딩테스트 (6)  (0) 2024.06.01
TIL 20240528 코딩테스트 (5)  (2) 2024.05.28
TIL 20240525 코딩테스트 (4)  (0) 2024.05.25
TIL 20240523 코딩테스트 (3)  (0) 2024.05.23
TIL 20231209 코딩테스트 (1)  (0) 2023.12.09