프로그래머스 1단계, 같은 숫자는 싫어 라는 문제이다.
문제를 처음부터 잘못봐서, 컬렉션 set을 사용해선 안되는 문제였는데 사용하고, 모르는 게 생겨서 삽질 아닌 삽질을 해버렸다.
그래도 몰랐던 방법에 대해서 해결방법을 찾는 과정이 있었으니 그나마 다행이라고 봐야할지.. ㅋㅋ
어쨌든 정답을 위한 풀이는 아니지만, 내가 고민이였던 부분이다.
Set은 컬렉션이기 때문에 자료형이 Wrapper 로 들어가게 된다.
하지만 문제에서 원하는 부분은 int 배열형이므로 Set -> Integer [] -> Int [] 순서로 바꿔줘야 했다. 물론, 난 다 몰랐다 ㅎㅎ
set은 index를 관리하지 않기 때문에, set 안에 있는 객체를 검색할 방법이 없다.
하지만 iterator를 통해서 전체 내용을 한 번씩 가져올 수 있다.
Set<Integer> s = new HashSet<Integer>(); // s.add(1); s.add(2); ...
Iterator<Integer> ite = s.iterator();
while(ite.hasNext()){ // ite : iterator 인스턴스
System.out.print(ite.next()+" "); // 1 2 3 ...
}
primitive type -> wrapper 로 바꿔주기 위해선 intValue()를 사용한다.
public class Solution {
public int[] solution(int []arr) {
Set<Integer> s = new HashSet<Integer>();
for(int i : arr){
s.add(i);
}
int answer[] = new int [s.size()];
int index=0;
Iterator<Integer> ite = s.iterator();
while(ite.hasNext()){
answer[index]=ite.next().intValue();
index++;
}
return answer;
}
}
잘못했지만 어쨌든 몰랐던 내용을 알게 된 계기였다..