백준 3052 자바(hashset)

정호윤·2023년 3월 2일

자바

목록 보기
2/46


처음에는 입력한 숫자 10개를 저장한 배열을 만든뒤 for문을 이용해서 배열의 요소 하나를 다른 배열의 요소들과 비교하고 감지하는 코드를 작성하려 했으나 실패했다.자기 자신을 제외하고 다른 요소들과 비교할 방법이 떠오르지 않았다.그래서 boolean 배열을 이용하는 방법을 사용했다.


42로 나눈 나머지는 무조건 0-41 사이로 나온다.그렇기에 42개짜리 boolean 배열을 만들고 입력한 숫자에 해당하는 배열 요소를 true로 바꿔준다.이미 나온 나머지는 이미 true라 변화가 없기에 자연스럽게 중복을 잡아낼수 있다.

그리고 마지막으로 bl 배열 안에서 true가 몇개인지 잡아내기만 하면 된다.

hashset을 이용한 풀이


hasgSet은 중복을 허용하지 않는다.그렇기에 나머지 값을 hashSet에 넣으면 자연스럽게 중복을 걸러낼수 있다.

h.size()를 이용하면 중복을 제외한 값들의 개수를 알수 있다.

hashSet은 순서가 없다는 특징이 있다.그렇기에 정렬을 원한다면 list로 변환 후에 해야한다.

profile
개발자로 취직을 희망합니다.

0개의 댓글