728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
투포인터처럼 반복문 1번으로 문제를 해결하려고 노력했다.
HashMap 2개를 사용해서, map의 size가 같으면 토핑의 종류가 같은 거라 answer++
반복문을 돌면서 철수가 가진 토핑을 빼주고, 동생에게 더해주며 map의 size를 비교해줬다.
전체코드
import java.io.*;
import java.util.*;
class Solution {
public int solution(int[] topping) {
HashMap<Integer,Integer> chulsu = new HashMap<>();
HashMap<Integer,Integer> sister = new HashMap<>();
for(int i=0; i<topping.length-1; i++){
if(!chulsu.containsKey(topping[i])){
chulsu.put(topping[i], 1);
}else{
chulsu.put(topping[i], chulsu.get(topping[i])+1);
}
}
sister.put(topping[topping.length-1], 1);
int answer = 0;
if(chulsu.size() == sister.size()){
answer++;
}
for(int i=topping.length-2; i>=0; i--){
if(chulsu.get(topping[i]) == 1){
chulsu.remove(topping[i]);
}else{
chulsu.put(topping[i], chulsu.get(topping[i])-1);
}
if(sister.containsKey(topping[i])){
sister.put(topping[i], sister.get(topping[i])+1);
}else{
sister.put(topping[i], 1);
}
if(chulsu.size() == sister.size()){
answer++;
}
}
return answer;
}
}
728x90
'코딩테스트 > Algorithm' 카테고리의 다른 글
[BOJ] 25325: 학생 인기도 측정 (JAVA) (0) | 2024.07.13 |
---|---|
[Programmers] [3차] 파일명 정렬 (JAVA) (0) | 2024.07.09 |
[Programmers] 멀리뛰기 (JAVA) (0) | 2024.07.08 |
[Programmers] [1차] 뉴스 클러스터링 (JAVA) (0) | 2024.07.08 |
[Programmers] 가장 큰 수 (JAVA) (0) | 2024.07.04 |