[A&I Code Camp] Day10 (contains, filterNot)

Hood·2024년 9월 20일

A&I Code Camp

목록 보기
10/38
post-thumbnail

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

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


문자 리스트를 문자열로 변환하기

이 문제는 간단하게 리스트 안에 담겨있는 문자를 연결해주어 하나의 문자열을 만드는 것이다.
그래서 answer 변수에 StringBulider()를 사용해 append()를 사용해서 풀어주었다.

class Solution {
    fun solution(arr: Array<String>): String {
        var answer = StringBuilder()
        for(x in arr){
            answer.append(x)
        }
        return answer.toString()
    }
}
class Solution {
    fun solution(arr: Array<String>) = arr.joinToString("")
}

홀짝 구분하기

이 문제는 처음으로 입력을 받고 그것이 짝수인지 홀수인지 판별하는 문제이다.
간단하게 입력받고 비교하여 필요한 값에 따라 출력을 주었다.

fun main(args: Array<String>) {
    val a = readln().toInt()
    if (a % 2 == 0){
        println("$a is even")
    } else {
        println("$a is odd")
    }
}

카운트 업

이 문제도 간단하게 for문으로 start_num부터 end_num까지 리스트안에 담도록 만들어주었다.
더욱 간단하게 만들 수 있지만 아직 나에게 미숙한 방법이다.

class Solution {
    fun solution(start_num: Int, end_num: Int): IntArray {
        var answer: IntArray = intArrayOf()
        for (x in start_num .. end_num){
            answer += x
        }
        return answer
    }
}
class Solution {
    fun solution(start: Int, end: Int): IntArray = (start..end).toList().toIntArray()
}

조건에 맞게 수열 변환하기 3

이 문제는 내가 생각한 대로 풀었더니 시간 초과가 나서
더욱 효율적인 밑의 코드로 만들었다.

class Solution {
    fun solution(arr: IntArray, k: Int): IntArray {
        var answer: IntArray = intArrayOf()
        for (x in arr.indices) {
            if (k % 2 == 0) answer += arr[x] + k else answer += arr[x] * k
        }
        return answer
    }
}
class Solution {
    fun solution(arr : IntArray, k : Int) = arr.map{ if (k % 2 == 0) it + k else it * k }
}

꼬리 문자열

이 문제는 리스트 안에 ex 문자열이 있다면 그것을 제외하고 문자열 하나로 이어서 출력하는 문제이다.
그래서 filterNotcontains()안에 ex를 넣어 ex가 있다면 제외하고 문자열 안에
.joinToString("") 하도록 풀어주었다.

  • contains() : 특정 값이 포함된 여부를 확인하는 함수
  • filterNot { } : 조건이 아닌 경우에만 해당 함수를 실행하는 함수
class Solution {
    fun solution(str_list: Array<String>, ex: String): String {
        return str_list.filterNot { it.contains(ex) }.joinToString("")
    }
}

📌결론

필요한 함수에 대해 검색이 필요하지만 기본적인 문법 지식이 늘어나는 것 같아서 뿌듯하다.

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

0개의 댓글