[A&I Code Camp] Day7 (startWith, endsWith)

Hood·2024년 9월 14일

A&I Code Camp

목록 보기
7/38
post-thumbnail

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

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


첫 번째로 나오는 음수

이 문제는 인덱스를 돌며 -가 처음 생성하는 곳에서 그 인덱스를 answer안으로 저장하고 그것을 출력하는
문제다 틀리면 answer는 -1을 만들도록 조건을 만들고 출력해주었다.
그런데 .indexOfFirst를 사용하면 쉽다는 것을 알았다.

class Solution {
    fun solution(num_list: IntArray): Int {
        var answer : Int = 0
        for (x in num_list.indices){
            if (num_list[x] < 0){
                answer = x
                break
            } else
                answer = -1
        }
        return answer
    }
}
class Solution {
    fun solution(num_list: IntArray): Int {
        return num_list.indexOfFirst { it < 0 }
    }
}

카운트 다운

이 문제는 start_num에서 end_num까지 down으로 값을 구해야한다.
처음에는 step -1을 생각했는데 생각해보니 downTo라는 for 문법이 있기에 그것을 사용하였다.

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

배열 만들기 1

이것은 위 문제의 심화로 k 만큼 띄어서 출력해야한다. 그래서 모범 답을 참조하여
k부터 n까지 k스탭한 것을 List로 담고 IntArray로 변환해주어 풀었다.

fun solution(n: Int, k: Int): IntArray = (k..n step k).toList().toIntArray()

접두사인지 확인하기

접두사 인지 확인하기 위해서는 문자열 처음부터 prefix 만큼 같아야한다.
그렇기에 startsWith()를 사용하여 풀어 주었다.

  • startWith() : 특정 문자()로 시작하는지 체크하는 함수
  • endsWith() : 특정 문자()로 끝나는지 체크하는 함수
fun solution(my_string: String, is_prefix: String): Int {
    return if(my_string.startsWith(is_prefix)) 1 else 0
}

문자열의 앞의 n글자

이 문제는 문자열의 앞의 n글자 만큼을 출력하는 문제이다.
그렇기에 인덱스 0부터 n-1 만큼 담기 위해 until을 사용해서 풀어주었다.
그런데 .slice를 사용해서 풀면 좀 더 쉽게 접근할 수 있다는 것을 알 수 있었다.

class Solution {
    fun solution(my_string: String, n: Int): String {
        var answer : String = ""
        for (x in 0 until n){
            answer += my_string[x]
        }
        return answer
    }
}
class Solution {
    fun solution(my_string: String, n: Int): String = my_string.slice(0 until n)
}

📌결론

점점 함수를 활용하는 능력이 올라가는 것 같아서 재미있는 문제풀이였다.
앞으로도 열심히 해보자!

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

0개의 댓글