coding_test

[99클럽 4기 코테 스터디 TIL 34일차] 햄버거 만들기 (feat. StringBuilder로 추가하면서 숫자 체크)

jeri 2024. 12. 1. 01:56
반응형

1) 문제

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

 

2) 내가 구현한 코드

- 시간초과 난 풀이

class Solution {
    public int solution(int[] ingredient) {
        int answer = 0;
        
        String str = "";
        for(int i=0; i<ingredient.length; i++){
            str += ingredient[i];
            
            if(str.length() >=4 && str.indexOf("1231") != -1) {
                str = str.replace("1231","");
                answer++;
            }       
            
        }
        return answer;
    }
}

 

 

- 정답인 풀이

class Solution {
    public int solution(int[] ingredient) {
        // 햄버거 개수를 담기 위한 answer
        int answer = 0;
        // 햄버거 재료들을 순서대로 담을 StringBuilder
        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < ingredient.length; i++) {
            // 현재 재료를 sb에 추가
            sb.append(ingredient[i]);

            // sb의 길이가 4 이상이고, 마지막 4개의 재료가 빵-야채-고기-빵인 경우
            if (sb.length() > 3 && sb.substring(sb.length() - 4, sb.length()).equals("1231")) {
                // answer 증가
                answer++;
                // 마지막 4개의 재료 삭제
                sb.delete(sb.length() - 4, sb.length());
            }
        }

        return answer;
    }
}

 

3) 추가 문제

미들러 - 개인정보 수집 유효기간

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

챌린저 - LCS 3

https://www.acmicpc.net/problem/1958

 

 

반응형