본문 바로가기

PROGRAMMING/JAVA

[JAVA] Collection Set/Map/List

알고리즘 문제를 풀다 보면 해당 문제에 맞는 자료구조를 잘 선택해야 한다.

이에 대해 요점만 정리해서 포스팅해본다.

 

 

구현체들의 특징

 

예를 들어

10개의 숫자가 주어지고 이 중에서 랜덤으로 3개를 뽑아 합을 만드는데 합이 될 수 있는 수 중에서 5번째 큰 수를 뽑아라

라는 문제가 있을 때 중복을 허용하지 않으며, 정렬이 필요함으로 TreeSet이 적절하다고 볼 수 있다.

 

또 다른 예로 anagram 문제가 있다.

abc와 bca 두 단어가 주어졌을 때 정렬 순서는 다르지만 구성이 같은지 판단해야 할 경우

HashMap에 Key를 알파벳으로 Value를 개수로 지정하여 equal비교를 통해 anagram인지 판별할 수 있다.