일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- JPA
- programmers
- Java
- jQuery
- Project
- web
- flask
- WIL
- 생명주기 콜백
- html
- google oauth
- javascript
- server send event
- real time web
- hanghae99
- 항해99
- Stream
- spring
- session
- JWT
- Anolog
- jenkins
- oauth
- python
- Hibernate
- Spring Security
- DI
- cookie
- SseEmitter
- bean
Archives
- Today
- Total
끄적끄적 코딩일지
[Programmers]폰켓몬(난이도:★★★★★) 본문
https://programmers.co.kr/learn/courses/30/lessons/1845
코딩테스트 연습 - 폰켓몬
당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.
programmers.co.kr
class Solution {
// 정렬후 다른 숫자가 나올때마다 counter을 증가시키면
// 최대로 다른 종류 고르는 수를 얻을 수 있다.
public int solution(int[] nums) {
int answer = 0;
int selectCount = nums.length / 2;
int selectNum = 0;
sort(nums);
for(int i = 0 ; i < nums.length;i++){
if(nums[i] != selectNum){
selectNum = nums[i];
answer++;
}
// count가 최대 선택 수를 넘어가면 break
if(answer == selectCount)
break;
}
return answer;
}
public void sort(int[] arr){
int idx = arr.length-1;
for(int i = 0 ; i < arr.length;i++){
for(int j = 0 ; j < idx; j++){
if(arr[j] < arr[j+1] || arr[j] == 0){
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
idx--;
}
}
}
'알고리즘' 카테고리의 다른 글
[Programmers]키페드 누르기(난이도:★★★★★★) (0) | 2022.05.17 |
---|---|
[Programmers][1차] 비밀지도(난이도:★★★★★★) (0) | 2022.05.17 |
[Programmers]체육복(난이도:★★★★★) (0) | 2022.05.17 |
[Programmers]실패율(난이도:★★★★★) (0) | 2022.05.17 |
[Programmers]소수찾기(난이도:★★★★★) (0) | 2022.05.16 |