기초 공부 (언어 및 알고리즘)/알고리즘 (Java)
[프로그래머스/Java] 폰켄몬(Hash 문제) 풀이
iinana
2025. 3. 4. 07:36
728x90
프로그래머스 알고리즘 고득점 Kit의 해시 문제 중 하나인 폰켄몬을 풀어봤다.
https://school.programmers.co.kr/learn/courses/30/lessons/1845?language=java
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
지속적으로 C언어로 알고리즘 문제를 풀고 코딩테스트를 치뤄왔으나, 빠르게 문제를 풀어야 하는 상황에서 C언어의 한계가 너무 명확했고, 알고리즘 때문에 C언어를 계속 공부하기도 어렵겠다고 판단해서, 앞으로 주 개발언어로 사용할 Java로 알고리즘 문제를 풀이하는데 차차 익숙해지고자 한다. 그래서 쉬운 문제부터 어려운 문제까지 섹터별로 나뉜 고득점 Kit를 자바로 풀어가려 한다.
문제 자체는 Hash를 사용하면 되므로 간단하다. 처음에 MAX_LEN을 200,000으로 설정해서 런타임 에러를 겪었는데, 해시를 사용할 때 주의할 점이다.
class Solution {
final int MAX_LEN = 200001;
public int solution(int[] nums) {
int answer = 0;
int[] count = new int[MAX_LEN];
int len = nums.length;
for (int i = 0; i < len; i++) {
if (count[nums[i]] == 0) answer++;
if (answer >= len / 2) return answer;
count[nums[i]]++;
}
return answer;
}
}
728x90