목록해시 (3)
Welcome! Everything is fine.
해당 스터디는 코딩 테스트 합격자 되기 C++> 저자님과 함께하는 스터디입니다.인프런 강의 코딩 테스트 합격자 되기 C++ > 을 보고 정리한 내용입니다. 해시의 개념배열로 구현한 전화번호부 전화번호부를 만든다고 생각해보자. 이름과 그 이름에 맞는 연락처를 저장하려고 한다면 어떻게 구현할 수 있을까? 배열로 구현한 전화번호부에서 '홍길동'의 연락처를 찾으려면 다음과 같은 과정을 거친다.이름 테이블을 선형탐색하면서 '홍길동'을 찾는다.'홍길동' 위치에 해당되는 전화번호 테이블을 참조한다.'홍길동' 위치에 있는 전화번호는 '전화번호4'라는 것을 확인한다.위와 같은 방식으로 '홍길동'의 연락처를 찾을 수 있다. 그러나 문제점은 성능이 떨어진다는 점이다! 가장 최악의 경우 배열 끝까지 탐색을 해야하기 때문에 O..
📌 문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr📌 풀이참가자 명단에는 있으나 완주자 명단에는 없는 선수의 이름을 반환하는 문제이다. 주의할 점은 참가자 중에 동명이인이 있을 수 있다는 점이다. 내가 작성한 풀이의 대략적인 흐름은 다음과 같다.참가자 배열을 돌며 HashMap에 형태로 참가자들의 정보를 저장한다.완주자 배열을 돌며 HashMap에 저장된 key와 같은 이름이 나올 경우해당 이름이 1개인 경우, 해당 이름으로 된 key를 삭제한다.해당 이름이 2개 이상인 경우(동명이인이 있을 경우), 해당 이름의 인원수를 1 감소시킨다.위 과정을 거..
📌 문제 📌 코드 import java.util.*; class Solution { public int solution(String[][] clothes) { // clothes 크기 만큼의 map 생성 HashMap map = new HashMap(clothes.length); // clothes[i][0] : 의상 이름, clothes[i][1] : 의상 종류 for (String[] cloth : clothes) { if (map.containsKey(cloth[1])) { // map에 해당 의상 종류가 있으면 실행 map.put(cloth[1], map.get(cloth[1]) + 1); // 그 전 value에 +1 continue; } map.put(cloth[1], 1); // map에 해..