프로그래머스 체육복

jaegeunsong97·2023년 2월 14일
0
post-thumbnail

https://school.programmers.co.kr/learn/courses/30/lessons/42862/solution_groups?language=java&type=my

문제 확인은 알아서.........

처음에 Set으로 풀면 되겠다 라고 생각했지만, 하나보니까 배열로 풀려고 했다. 2중 for문 까지 만들고 거의 다 왔는데, 도저히 안되서 다른사람의 풀이를 보았고, Set으로 푸는 방법을 골랐다.

총평: 문제를 이해하자

import java.util.*; // 무적의 import


class Solution {
    public int solution(int n, int[] lost, int[] reserve) {
    	Set<Integer> reserveSet = new HashSet<>();
        Set<Integer> lostSet = new HashSet<>();
        
        // 같은 번호 제거
        for (int i: reserve) reserveSet.add(i);
        for (int i: lost) {
        	if (reserveSet.contains(i)) reserveSet.remove(i);
            else lostSet.add(i);
        }
        
        // +1, -1 -> lostSet에서 제거
        for (int i: reserveSet) {
        	if (lostSet.contains(i - 1)) lostSet.remove(i - 1);
            else if (lostSet.contains(i + 1)) lostSet.remove(i + 1);
        }
        
        return n - lostSet.size();
}
profile
현재 블로그 : https://jasonsong97.tistory.com/

0개의 댓글