본문 바로가기

TIL

22.12.23 TIL

오늘 한 일

  • 고급 정렬 알고리즘 강의 듣기
  • 배열, 스택, 큐 안보고 구현해보기
  • 프로그래머스 알고리즘 1문제 풀기

공부하면서 궁금한 점

알고리즘 문제를 풀면서 배열에서 중복인 숫자를 저장하면 안되는 문제를 풀게 되었다.

직접 만들긴 했는데 뭔가 지저분해 마음에 들지 않아서

다른 사람들의 풀이를 보게되었는데 contains라는 함수와 HashSet 을 알게 되었다.

 

.contains() 는 내부를 순회하며 입력한 변수와 같은것이 있는지 boolean 으로 반환 해주는 함수

 

HashSet

Set 인터페이스에서 지원하는 구현 클래스이며

순서대로 입력되지 않고, 일정하게 유지되지 않는게 특징이라고 한다.

이 클래스의 가장 큰 특징은 중복을 허용하지 않는다는 것

 

HashSet은 객체를 저장하기 전에 먼저 객체의 hashCode()메소드를 호출해서

해시 코드를 얻어낸 다음 저장되어 있는 객체들의 해시 코드와 비교한 뒤,

같은 해시 코드가 있다면 다시 equals() 메소드로 두 객체를 비교해서

true가 나오면 동일한 객체로 판단하고 중복 저장을 하지 않는다.

출처 : coding-factory.tistory.com/554

 

공부할수록 다양한 자료구조가 나오는걸 느꼈으며, HashSet 과 contains를 이용해서도 코드를 작성해 보았다.


 내일 할 일

  • 그래프 기본탐색 알고리즘, 탐욕알고리즘 듣기
  • 프로그래머스 알고리즘 1단계 2문제 풀기
  • 배열, 스택, 큐 안보고 구현해보기

'TIL' 카테고리의 다른 글

22.12.30 TIL  (0) 2022.12.30
22.12.29 TIL  (0) 2022.12.30
22.12.27 TIL  (0) 2022.12.27
22.12.26 TIL  (0) 2022.12.27
22.12.22 TIL  (0) 2022.12.22