"Map 과 HashMap의 차이가 뭐에요?" (내 얘기)
결론부터 말하자면, Map이란 key-value로 값을 저장하는 자료구조를 의미하고, HashMap은 Map을 구현해놓은 구현체 중 하나이다. 즉, 서로 비교대상이 될 대상이 아니다. Map이란 개념을 구현해서 HashTable, HashMap, TreeMap 등이 있는 것이니 말이다. '진자와 그네의 차이점이 뭔가요?' 와 비슷한 질문일 것 같다. 그럼 Map이란 무엇일까? Java Collection의 주요 인터페이스엔 List, Set, Map이 있는데, 우선 이 인터페이스를 구분하는 가장 중요한 개념은 "순서" 와 "데이터중복여부" 에 있다. List: 순서 O, 데이터 중복O Set: 순서 X, 데이터 중복X Map: Key&Value 저장, Key중복X, Value중복 O Java Collec..
[백준] 18870 - 좌표 압축 - JAVA[자바]
[접근 방법] "좌표 압축" 은 coordinate Compression(좌표 압축) 이라고 하는 문제의 한 카테고리를 차지하고 있다. 데이터의 범주가 너무 크거나, 단순화하여 문제를 세분화 시킬 때 사용할 수 있다. 이번 문제를 해석하면 배열의 각 원소에 대해 순위를 매긴다 라고 생각하면 된다. 예제 입력 1에서 {2, 4, -10, 4, -9} 가 있을 때 내림차순으로 순위를 매긴다면 {2, 3, 0, 3, 1} 이 된다. 즉, 1. 낮은 값이 높은 순위(0순위) 를 갖는다. 2. 중복되는 원소는 같은 순위를 갖는다. 이때 정렬을 떠올리는 것이 좋은 접근방법이다. 또, "2. 중복되는 원소는 같은 순위를 갖는다." 에서 중복되는 원소를 하나만 갖는게 중요하므로 자료구조 중 Set 혹은 Map을 사용하..