728x90
https://school.programmers.co.kr/learn/courses/30/lessons/1845
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
오랜만에 프로그래머스에서 코딩테스트 문제를 풀어보았습니다.
너무 오랜만에 푸는거고 취업 준비할때는 C++ 로 코딩테스트를 준비했었는데
취업 후에는 주로 Java를 사용하다보니 Java 로 문제를 풀어보았는데 뭔가 익숙하지가 않은거 같다는 느낌이 들었다.
(꾸준히 연습할 필요가 있음.)
폰켓몬 문제의 핵심은 주어진 N마리의 폰켓몬 중 절반 즉, N/2 마리의 폰켓몬을 가져갈수 있고 또 얼마나 많은 종류의 폰켓몬을 가져갈 수 있냐가 핵심이다.
다시 정리하자면
1. N마리의 폰켓몬이 있음.
2. N/2 만큼 가져올 수 있음
3. 많은 종류의 폰켓몬을 가져와야 함.
예시
[꼬부기, 피카츄, 파이리, 야도란]
이렇게 있으면 네 마리중 절반 2마리를 가져올 수 있고 두 종류의 폰켓몬을 가져올 수 있다.
[피카츄, 피카츄, 피카츄, 피카츄]
이렇게 있으면 피카츄만 2마리 가져올수 있는거다.
import java.util.*;
class Solution {
public int solution(int[] nums) {
// 중복제거
Set<Integer> uniqueSet = new HashSet<>();
for (int num : nums) {
uniqueSet.add(num);
}
int uniqueSize = uniqueSet.size();
int halfOfNumSize = nums.length / 2;
return Math.min(uniqueSize, halfOfNumSize);
}
}
728x90
'Algorithm Study > Programmers' 카테고리의 다른 글
(프로그래머스) 완주하지 못한 선수 (0) | 2024.09.22 |
---|---|
(2022 KaKao Blind Recruitment) 신고 결과 받기 (0) | 2022.06.26 |
(카카오 인턴십) 크레인 인형뽑기 게임 (0) | 2020.08.06 |
(카카오 인턴십) 호텔 방 배정 (0) | 2020.08.04 |
(2019 카카오 인턴십) 키패드 누르기 (0) | 2020.07.29 |
댓글