[boostCamp] 25. 자가진단 문제 6번
2021. 6. 23. 23:18
부스트캠프를 지원하기 전 푼 문제 중 6번문제 알고리즘 풀이이다!!
https://blog.naver.com/boostcamp_official/221978031932
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 |