프로그래머스 lv1 0705

HyeJi9908·2022년 7월 6일
0

[JAVA] 프로그래머스

목록 보기
5/11

🔎 개념

배열 선언

int[] arr = new int[n];

:default로 크기 n만큼 원소 0 부여 -> arr = {0,0,0,0,0,...]

// 0외의 다른값으로 할당하고 싶을 때
Arrays.fill(arr,1);

HashSet : 중복원소 제거

		int[] nums = {1,2,3,4,4};
        HashSet<Integer> set = new HashSet<>();
        for(int i:nums) set.add(i);

📚 체육복

    public int solution(int n, int[] lost, int[] reserve) {
        int answer = n;
        int[] arr = new int[n]; // default로 크기 n만큼 원소 0 부여
        						// arr =  {0,0,0,0,0,...]
        // 0외의 다른값으로 할당하고 싶을 때
        //  Arrays.fill(arr,1);
        
        for(int l : lost) arr[l-1]--;
        for(int r: reserve) arr[r-1]++;
        
        // 잃어버린 사람은 -1, 여분의 체육복이 있는 사람은 +1
        for(int i=0;i<arr.length;i++) {
        	if(arr[i] == -1 ) {			   // 본인은 체육복이 없는 상태
        		if(i-1>=0&& arr[i-1]==1) { // 앞 사람이 체육복이 있을 때
        			arr[i-1]--;
        			arr[i]++;
        		}
        		else if(i+1<arr.length && arr[i+1]==1) { // 뒷 사람이 체육복이 있을 때
        			arr[i+1]--;
        			arr[i]++;
        		}else 
        			answer--;
        	}
        }
        
        return answer;
    }

📚 폰켓몬 - Hash

    public int solution(int[] nums) {
        
        int ans= nums.length/2;
        
        // 중복없애기위해 set활용
        HashSet<Integer> set = new HashSet<>();
        for(int i:nums) set.add(i);
        
        // ans와 set.size()중 더 작은 값 리턴
        if(set.size()>ans) {
        	return ans;
        }else return set.size();
         // return nums.length/2 > list.size()?list.size():nums.length/2;
        
    }

0개의 댓글