이번 문제는 제목이 귀여워서 풀어보려고 했는데 처음에는 문제가 뭔 말인지... 싶었습니다 ㅎㅎ
점점 한글 읽기 능력이 떨어지고있나봐요.....
폰켓몬 문제를 보면
잘 안보이시다면
https://programmers.co.kr/learn/courses/30/lessons/1845
여기를 참고해주세요~
문제풀이
import java.util.*;
class Solution {
public int solution(int[] nums) {
int answer = 0;
int pickNums = nums.length / 2; //선택할 횟수
//중복 제거
Set<Integer> set = new HashSet<Integer>();
for(int num : nums) {
set.add(num);
}
//set의 크기가 pickNums보다 크면 pickNums리턴 작으면 set의 size를 리턴
if(pickNums < set.size()) {
answer = pickNums;
}else {
answer = set.size();
}
return answer;
}
}
이번 문제는 그래도 비교적 쉽게 풀었던 거 같아요 뭔가 코딩하는 것이 아닌 수학 문제를 푸는 느낌이었습니다.
아마 예시를 보고 풀어보면 이해하기 쉬울 것 같습니다.
예 1) [3, 1, 2, 3] 에서 숫자의 개수는 1, 2, 3이지만 선택할 폰켓몬의 갯수는 4 / 2 이므로 2개를 선택해야 합니다.
따라서 가장 많은 종류의 폰켓몬을 선택하는 result값은 2입니다.
예 3) [3, 3, 3, 2, 2, 2] 에서 숫자의 개수는 2, 3이지만 선택할 폰켓몬의 갯수는 6 / 2 이므로 3개를 선택해야 합니다.
따라서 가장 많은 종류의 폰켓몬을 선택하는 result값은 2입니다.
이제 뭔가 좀 감이 오시나요?
이처럼 어떤 문제인지 먼저 풀어보시면 코딩의 방향을 잡을 수 있는 문제들도 있습니다.
문제를 보고 바로 코딩하려는 생각보다 가끔은 이렇게 예제를 보고 문제를 먼저 풀어보면 보다 더 쉽게 코딩할 수 있습니다.
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] 프로그래머스 12926 시저암호 - java (0) | 2021.07.17 |
---|---|
[Programmers] 프로그래머스 12912 두 정수 사이의 합 - java (2) | 2021.07.09 |
[Programmers] 프로그래머스 42626 더 맵게 - java (0) | 2021.06.17 |
[Programmers] 프로그래머스 42587 프린터 - java (2) | 2021.06.13 |