[프로그래머스] 절대 외부 IDE를 써선 안돼/Java

[lv2] 롤케이크 자르기

SH3542 2024. 11. 19. 21:39

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

 

중복인 토핑을 카운트하지 않기 위해 set을 쓴다.

 

각각 왼/오른쪽 끝 부터 출발하여 토핑 가지수를 l[], r[]에 기록한다.

 

자르는 모든 경우의 수에 대해 lcnt와 rcnt가 같다면 answer++ 한다.

import java.util.*;

class Solution {
    int[] topping;
    int T, answer;
    // 왼/오른 쪽 부터 잘랐을 때 포함되는 토핑 개수
    int[] l, r;

    int solve() {

        Set<Integer> set = new HashSet<>();

        for(int i=0; i<T; i++) {
            set.add(topping[i]);
            l[i] = set.size();
        }

        set.clear();
        for(int i=T-1; i>=0; i--) {
            set.add(topping[i]);
            r[i] = set.size();
        }


        for(int i=0; i<T-1; i++) {
            if(l[i] == r[i+1])
                answer++;
        }

        return answer;
    }

    public int solution(int[] topping) {
        this.topping = topping;
        T = topping.length;
        l = new int[T];
        r = new int[T];


        return solve();
    }
}

'[프로그래머스] 절대 외부 IDE를 써선 안돼 > Java' 카테고리의 다른 글

[lv3] 합승 택시 요금  (0) 2024.11.30
[lv2] 땅따먹기  (0) 2024.11.23
[lv2] 게임 맵 최단거리  (0) 2024.11.19
[lv2] 영어 끝말잇기  (1) 2024.11.19
[lv2] 숫자의 표현  (2) 2024.11.19