HashMap
-
카카오 블라인드 2021) 순위 검색알고리즘/프로그래머스 카카오 2021. 3. 7. 18:07
순위 검색 new ArrayList()).add(score); } } for(Map.Entry entry : map.entrySet()) { entry.getValue().sort(null); } return map; } private int getCounts(Map map, String query) { String[] queryCondition = getCondition(query.replaceAll(DEFAULT, NOTHING).replaceAll(QUERY_REGEX, SPACE)); String key = getKey(queryCondition); int score = Integer.parseInt(queryCondition[SCORE_INDEX]); List list = map.getOrDef..
-
카카오 블라인드 2021) 메뉴 리뉴얼알고리즘/프로그래머스 카카오 2021. 3. 7. 17:54
문제 해석을 잘못해서 푸는데 오래걸렸다. 세트 메뉴의 갯수가 같을 때, 주문한 수가 가장 많은 세트로 답을 구해주어야 한다. 처음에는 반대로 주문한 수가 많은 것들을 모아서, 세트 메뉴가 가장 많은 것을 답으로 리턴해주었다.. 이외에도, 주문받은 메뉴를 정수형 배열의 인덱스에 저장하며, 입력받은 course에 따라 리턴해주는 방법도 시도했었지만, 당연히 틀리는 방법이다. (문제 해석을 잘못해서 카운팅만 해주면 된다고 생각했었다.. ㅠ) 각설하고, 여러 차례 시도했는데 계속 틀려서 카카오 해설 힌트를 보고 permutation을 적용했다. 이 때, 미리 메뉴를 정렬해서 하는 방법이 더욱 효율적이겠지만, 처음에 비트마스크로도 접근을 했었어서, 이 코드를 지우기 아까워서 재활용했다. (효율적인 방법이라고는 말..
-
HashMap과 해시 충돌CS 지식/자료구조 2021. 1. 14. 18:08
HashMap과 HashTable 관계 HashTable JDK 1.0부터 있던 Java의 API Map 인터페이스를 구현하고 있기 때문에 HashMap과 HashTable이 제공하는 기능은 같다. JDK 버전에 따른 구현에 거의 변화가 없다. HashMap Java 2에서 처음 선보인 Java Collections Framework에 속한 API 보조 해시 함수(Additional Hash Function) (~> hashCode) 를 사용 보조 해시 함수를 사용하지 않는 HashTable에 비하여 해시 충돌(hash collision)이 덜 발생할 수 있어 상대적으로 성능상 이점이 있음 JDK 버전에 따라 지속적으로 개선되고 있다. HashTable의 현재 가치는 JRE 1.0, JRE 1.1 환경을..
-
BOJ) 성곽알고리즘/백준 2020. 7. 6. 18:18
성곽 2234번: 성곽 문제 대략 위의 그림과 같이 생긴 성곽이 있다. 굵은 선은 벽을 나타내고, 점선은 벽이 없어서 지나다닐 수 있는 통로를 나타낸다. 이러한 형태의 성의 지도를 입력받아서 다음을 계산하는 프로� www.acmicpc.net 풀이 생각보다 코드가 길어진 문제다. 각 방에 대해 상하좌우에 벽이 있는지 없는지를 int형 숫자로 주어진다. 이 숫자는 각각 벽이 있다는 의미를 가진 2진수 숫자를 모두 더한 값이다. 벽의 방향 숫자 서 1 북 2 동 4 남 8 위의 벽 정보에 따라서 map의 숫자가 정해진다. 만약 서쪽과 북쪽에 벽이 있다면, 해당 방의 숫자는 3으로 주어지고, 동쪽과 남쪽은 12가 주어지는 식이었다. 그래서, 거추장스럽지만 0~15까지 움직일 수 있는 방향을 미리 저장했다. (..