본문 바로가기

hash2

[Java] 프로그래머스 - 폰켓몬 중복을 제거해 폰켓몬 종류 수를 구한 뒤, 고를 수 있는 마리 수(N/2)와 비교해서 더 작은 값을 반환하는 문제. 1. 문제 유형해시 2. 내가 놓친 포인트처음 떠올린 접근 : 전체 폰켓몬 수의 절반만 선택 가능하니까 nums.length / 2를 먼저 구하고 HashSet을 통해 중복을 제거해서 둘 중 더 작은 값을 반환하려고 했다. 오답 원인: 중복 제거를 위해 HashSet을 써야 하는 건 맞았는데, HashMap처럼 제네릭을 두 개 넣어버렸다. 3. 핵심 로직 & 해결 방법핵심 조건: N마리 중 정확히 N/2마리만 선택 가능하고 최대한 많은 종류를 골라야한다.풀이 아이디어:nums.length / 2로 선택 가능한 마리 수를 구한다.HashSet에 배열의 값을 전부 넣어 중복을 제거하고 종류 .. 2026. 4. 2.
[Java] 프로그래머스 - 완주하지 못한 선수 참가자 명단과 완주자 명단이 주어질 때, 동명이인까지 고려해서 완주하지 못한 선수 1명을 찾는 문제. 1. 문제 유형해시, 문자열, 구현 2. 내가 놓친 포인트처음 떠올린 접근 : 참가자와 완주자 배열을 정렬한 뒤, 서로 비교해서 다른 이름을 찾으려고 했다. 오답 원인: 이렇게 해도 풀 수는 있지만 시간복잡도 상으로 좋은 코드는 아니었다. 3. 핵심 로직 & 해결 방법핵심 조건: 참가자 중에는 동명이인이 있을 수 있다. 따라서 이름 -> 개수 형태로 관리해야 한다. 풀이 아이디어:HashMap를 만든다.participant를 순회하면서 이름이 나올 때마다 개수를 1씩 증가시킨다.completion을 순회하면서 이름이 나올 때마다 개수를 1씩 감소시킨다.마지막에 map을 순회해서 값이 0이 아닌 이름을 찾.. 2026. 3. 31.