[boostCamp] 25. 자가진단 문제 6번

2021. 6. 23. 23:18

부스트캠프를 지원하기 전 푼 문제 중 6번문제 알고리즘 풀이이다!! 

https://blog.naver.com/boostcamp_official/221978031932

 

부스트캠프 웹 · 모바일 자가 진단

스스로 그리고 동료와 함께 성장할 수 있는 새로운 방식의 개발자들을 위한 학습 커뮤니티, 부스트캠프 지...

blog.naver.com

1. Problem

 

2. Code

 

1) 오름차순 순서대로 중복값 출력

package boostcamp;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ex6 {

	public static void main(String[] args) {
		int[] arr = {3,5,7,9,1};
		Arrays.sort(arr);
		List<Integer> temp = new ArrayList<>();
		int count = 1;
		for(int i = 1; i < arr.length; i++) {
			if(arr[i] == arr[i-1]) {
				count++;
				if(i == arr.length-1) {
					temp.add(count);
				}
			} else {
				if(count > 1) {
					temp.add(count);
				}
				count = 1;
			}
		}
        
		int[] result = new int[temp.size()];
		for(int i = 0; i < temp.size(); i++) {
			result[i] = temp.get(i);
			System.out.println(temp.get(i));
		}
        
		if(temp.size() == 0) {
			System.out.println("-1");
		}
        
	}
}

 

2) 주어진 배열의 숫자 순서대로 중복값 출력

package boostcamp;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;

public class notSortEx6 {

	public static void main(String[] args) {
		int[] arr = {1,2,3,3,3,3,4,4};
		Map<Integer,Integer> linkedHashMap = new LinkedHashMap<>();
		Iterator<Integer> keys = linkedHashMap.keySet().iterator();
		
		int count = 0;
		for(int i = 0; i < arr.length; i++) {
			if(linkedHashMap.containsKey(arr[i])) {
				if(linkedHashMap.get(arr[i]) == 1) { count++; }
				linkedHashMap.replace(arr[i], linkedHashMap.get(arr[i])+1);
			} else {
				linkedHashMap.put(arr[i],1);
			}
		}
		
		if(count == 0) {
			System.out.println("-1");
		} else {
			int resSize = 0;
			int[] result = new int[count];
			for(int key : linkedHashMap.keySet()) {
				int value = linkedHashMap.get(key);
				if(value != 1) {
					result[resSize++] = value;
				}
			}
			for(int i = 0; i < count; i++) {
				System.out.println(result[i]);
			}
		}
	}

}

 

 

3. Report

처음엔 작은 수부터 중복값을 구해야되는 줄 알고 sort를 해서 풀었다

문제를 잘읽자...

linkedhashMap은 처음 써보는데 그냥 2차원 배열로 푸는 것보다 빨리 풀 수 있을 것 같아서 이용해봤담

'Algorithm > 문제' 카테고리의 다른 글

[programmers] 27. 최댓값과 최솟값  (0) 2021.07.01
[LeetCode] 26.Climbing Stairs  (0) 2021.06.24
[LeetCode] 24.Missing Number  (0) 2021.06.01
[LeetCode] 23.Rotate String  (0) 2021.05.27
[LeetCode] 22.Shuffle String  (0) 2021.05.25

BELATED ARTICLES

more