프로그래머스

햄버거 만들기

끝까지 처음처럼 2022. 11. 11. 16:16
728x90
class Solution {
    fun solution(ingredient: IntArray): Int {
        var answer: Int = 0
        var temp = ingredient.toMutableList()
        var check = 0
        while(check+3 <= temp.size){
           if(temp[check] == 1 && temp[check+1] == 2 && temp[check+2] == 3 && temp[check+3] == 1){
                answer++
                temp.removeAt(check+3)
                temp.removeAt(check+2)
                temp.removeAt(check+1)
                temp.removeAt(check)
                if(check >= 3) {
                    check -= 3
                } else {
                    check = 0
                }
           } else {
                check++
           } 
        }
        return answer
    }
}

해당 문제는 구현하기 쉽지만, 반례를 잘 생각해야 통과할 수 있는 문제였습니다.

해당 코드를 반례를 생각하지 못하고 몇번이나 작성하며, 반례가 떠올라 모든 케이스를 통과 할 수 있었습니다.

상기 코드는 현재 저의 실력으로 작성하였으며, 최적의 코드가 아님을 말씀드립니다.