Kotlin으로 프로그래머스 기초문제 풀기 (2일차)

jeongho park·2024년 3월 23일
0

Programmers 문제 풀기

문자열 겹쳐쓰기

URL : https://school.programmers.co.kr/learn/courses/30/lessons/181943?language=kotlin

  • 전형적인 substring 문제이다.
class Solution {
    fun solution(my_string: String, overwrite_string: String, s: Int): String {
        var answer: String = ""
        answer += my_string.substring(0,s)
        answer += overwrite_string
        answer += my_string.substring(overwrite_string.length+s)
        return answer
    }
}

배열만들기 6

URL : https://school.programmers.co.kr/learn/courses/30/lessons/181859

  • 설명에 나와있는걸 구현하면 된다.
  • 특이한게 있는데 mutableListOf이다 ArrayList랑 매우 비슷하면서 가변이 가능한 List
class Solution {
    fun solution(arr: IntArray): IntArray {
    val stk = mutableListOf<Int>()
    var i = 0

    while (i < arr.size) {
        if (stk.isEmpty()) {
            stk.add(arr[i])
            i++
        } else if (stk.last() == arr[i]) {
            stk.removeAt(stk.size - 1)
            i++
        } else {
            stk.add(arr[i])
            i++
        }
    }

    return if (stk.isEmpty()) {
        intArrayOf(-1)
    } else {
        stk.toIntArray()
    }
    }
}

조건 문자열

URL : https://school.programmers.co.kr/learn/courses/30/lessons/181934

  • if문으로 구분하면 되며 equals를 쓰지 않고 그냥 ==로 하면 된다.
class Solution {
    fun solution(ineq: String, eq: String, n: Int, m: Int): Int {
        if (ineq == "<") {
            if (eq == "=") {
                if (n <= m) return 1
            } else if (n < m) {
                return 1
            }
        } else if (ineq == ">") {
            if (eq == "=") {
                if (n >= m) return 1
            } else if (n > m) {
                return 1
            }
        }
        return 0
    }
}

없는 숫자 더하기

URL : https://school.programmers.co.kr/learn/courses/30/lessons/86051?language=kotlin

  • 전체 찾는걸 bruteforce라고 하는데 다 뒤져봐야 한다.
class Solution {
    fun solution(numbers: IntArray): Int {
        var answer: Int = 0
        
        for(i in 1..9) {
            var flag = true
            for(j in numbers.indices) {
                if(numbers[j] == i) {
                    flag = false
                    break
                }
            }
            if(flag) {
                answer += i
            }
        }
        return answer
    }
}
profile
BackEnd 개발자

0개의 댓글