문제
https://school.programmers.co.kr/learn/courses/30/lessons/132265?language=java
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
class Solution {
public int solution(int[] topping) {
int answer = 0;
// index: topping 원소, value: 해당 원소 개수
int[] dp1=new int[10001];
int[] dp2=new int[10001];
// 토핑 종류의 수
int count1=0;
int count2=0;
// 철수가 첫번째 조각, 동생이 나머지 전부 가지게 초기화
dp1[topping[0]]++;
count1++;
for(int i=1; i<topping.length; i++){
dp2[topping[i]]++;
if(dp2[topping[i]]==1){
count2++;
}
}
// topping을 한개씩 순회하며 동생이 가지고 있던걸 형에게 전달
for(int i=1; i<topping.length; i++){
dp1[topping[i]]++;
if(dp1[topping[i]]==1){
count1++;
}
dp2[topping[i]]--;
if(dp2[topping[i]]==0){
count2--;
}
// 종류의 개수가 같아지면 answer++
if(count1==count2) answer++;
}
return answer;
}
}
'문제풀이 > 기타' 카테고리의 다른 글
[JAVA] [투포인터] 백준 13144 List of Unique Numbers (0) | 2023.07.25 |
---|---|
[JAVA] Pro n^2 배열 자르기 (0) | 2023.07.25 |
[JAVA] Pro 우박수열 정적분 (0) | 2023.07.21 |
[JAVA] 백준 22233 가희와 키워드 (0) | 2023.07.20 |
[JAVA] Pro 숫자 카드 나누기 (0) | 2023.07.20 |