관리 메뉴

나만을 위한 블로그

[Algorithm] 프로그래머스 - 코드 처리하기 (Kotlin) 본문

알고리즘 문제 풀이/프로그래머스

[Algorithm] 프로그래머스 - 코드 처리하기 (Kotlin)

참깨빵위에참깨빵_ 2023. 12. 6. 20:25
728x90
반응형

 

30분 동안 풀어보려 했으나 풀리지 않아서 다른 풀이를 확인하고 코틀린으로 바꿔서 제출했다.

 

class Solution {
    fun solution(code: String): String {
        val sb = StringBuilder()
        var mode = 0
        code.forEachIndexed { index, _ ->
            if (code[index] == '1') {
                mode = 1 - mode
            } else if (index % 2 == mode) {
                sb.append(code[index])
            }
        }

        return sb.toString().ifEmpty { "EMPTY" }
    }
}

 

처음에 mode는 0으로 시작한다고 문제 하단에 쓰여 있고 1이 들어올 수도 있기 때문에 var mode 형태로 변수를 선언하고, 0으로 초기화한다. 그리고 후에 1을 만나면 mode를 0에서 1로 바꾼다.

이 때 mode 변수에 "1 - mode"을 대입해서 0, 1을 전환할 수 있었다. 풀 때는 생각하지 못했던 방법이라 신기했다.

그리고 현재 mode가 1이 아닌 경우, mode가 0일 때는 짝수 인덱스의 문자만 추가하고 1일 때는 홀수 인덱스의 문자만 추가한다. 이것도 else if의 조건 한 줄로 깔끔하게 정리된다.

 

마지막으로 StringBuilder에 담긴 값들을 String으로 바꿔서 리턴하고, 이 때 만약 StringBuilder가 공백이라면 "EMPTY" 문자열을 리턴시키는 걸로 풀이가 끝난다.

반응형
Comments