[A&I Code Camp] Day14

Hood·2024년 9월 26일

A&I Code Camp

목록 보기
14/38
post-thumbnail

✍   Kotlin을 사용한 프로그래머스 Lv. 0 문제 풀기

소속중인 A&I 동아리에서 코딩역량을 강화하고자
코딩캠프를 진행하며 작성한 포스트입니다.
주말을 제외한 모든 날에 하루 5문제씩
프로그래머스 Lv.0 문제에 대한 풀이입니다.
해당 포스트는 kotlin을 기반으로 작성합니다.


콜라츠 수열 만들기

콜라츠 수열은 매개변수 n이 1일 될 때까지 짝수일 때 n / 2를 홀수일 때 n * 3 + 1을 하는 공식을 갖는다.
그래서 n을 변수로 받아주고 list를 만들어 n을 먼저 추가하였다.
그 뒤 num이 1이 아닐 때까지 위 공식을 반복문으로 돌려준 후 그 수를 list 안에 담아
마지막에 list가 아닌 IntArray로 반환해야 하기에 .toIntArray로 바꾸어주었다.

class Solution {
    fun solution(n: Int): IntArray {
        var num = n
        val list = mutableListOf<Int>()
        list.add(n)

        while(num != 1){
            if(num % 2 == 0){
                num /= 2
                list.add(num)
            } else {
                num = 3 * num + 1
                list.add(num)
            }
        }
        return list.toIntArray()
    }
}

공백으로 구분하기 2

비교적 코드는 간단해 보이나 양쪽 공백을 제거하는 것은 .trim()을 통해 쉽게 할 수 있으나
중간의 공백들이 자꾸 배열로 들어가서 애를 먹은 문제이다.
그래서 .filter로 그것이 공백이 아니라면 담을 수 있도록 만들었다.
그 후로 리스트로 담겨 .toTypedArray()를 통해 타입을 맞춰주었다.

  • .isNotEmpty : 어떠한 값을 가질 때 True를 가짐.
class Solution {
    fun solution(my_string: String): Array<String> {
        var answer = my_string.split(" ").filter { it.isNotEmpty() }
        return answer.toTypedArray()
    }
}

배열 비교하기

이 문제는 모든 조건에서 arr1이 크면 1을 arr2 -1을 반환한다.
처음에는 size를 비교하여 반환하고 만약 배열 크기가 같다면 총합으로 비교한다.
만약 모두 같으면 0을 반환하기에
그 조건에 맞춰 값을 주었다.

class Solution {
    fun solution(arr1: IntArray, arr2: IntArray): Int {
        if (arr1.size < arr2.size) {
            return -1
        } else if( arr1.size > arr2.size) {
            return 1
        } else {
            if (arr1.sum() < arr2.sum()){
                return -1
            } else if (arr1.sum() > arr2.sum()){
                return 1
            } else {
                return 0
            }
        }
    }
}

정수 부분

소수를 정수로 변환하는 것은 .toInt()이다.

class Solution {
    fun solution(flo: Double): Int {
        return flo.toInt()
    }
}

rny_string

이 문제는 m을 rn으로 바꾸어 주어야 한다.
그래서 문자열에 .replace 함수를 이용해 m을 rn으로 바꾸어 주었다.

class Solution {
    fun solution(rny_string: String): String {
        return rny_string.replace("m", "rn")
    }
}

📌결론

배열을 리스트로 만들어주는 법과 공백을 제거하는 함수를 배워 가는 문제들이였다.

profile
달을 향해 쏴라, 빗나가도 별이 될 테니 👊

0개의 댓글