일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- rabbitmq 싱글톤
- 안정해시
- 백준 특정한 최단 경로
- spring mongodb switch
- 백준 1504 java
- nodejs rabbitmq
- 자바 1676
- ipfs singletone
- spring mongoTemplate switch
- kotiln const
- javav 1676
- java 파티
- go
- java 팩토리얼 개수
- mongodb lookup
- java 백준 1509
- spring mongodb
- 백준 연결요소 자바
- java 1509
- 익명 객체 @transactional
- java 1238
- ipfs bean
- 전략 패턴이란
- 백준 2252 줄세우기
- 자바 백준 팩토리얼 개수
- kotiln const val
- Spring ipfs
- Java Call By Refernce
- kotiln functional interface
- spring mongoTemplate
Archives
- Today
- Total
공부 흔적남기기
프로그래머스 체육복 본문
728x90
반응형
import java.util.ArrayList;
import java.util.Arrays;
class Solution {
public int solution(int n, int[] lost, int[] reserve) {
//도둑이 여벌은 안훔쳐가고 원래 있던 체육복만 훔쳐가는 참 웃긴 문제다
int answer = 0;
// 이 문제를 풀때 상식적으로 생각한다면 순차정렬을 해야하므로 정렬
Arrays.sort(lost);
Arrays.sort(reserve);
// arrayList를 좋아해서 ArrayList로 바꿈
ArrayList<Integer> lostList = new ArrayList<>();
for (int i : lost) {
lostList.add(i);
}
ArrayList<Integer> reserveList = new ArrayList<>();
for(int i : reserve){
reserveList.add(i);
}
// 먼저 잃어버린 친구들은 수업에 못들어가니까 answer에서 빼줌
// 여벌을 받으면 answer을 +1 해줄것임
answer = n - lostList.size();
//[3,4], [2,3] -> 이 테스트 케이스 떄문에 꽤 애먹었음
//체육복을 도난당했으나 여벌있는 참 웃긴 친구는 스스로 여벌이 있으므로 제외시켜줌
//이런 조건이 있음 조건을 잘 읽어볼 것
//여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있습니다.
//이때 이 학생은 체육복을 하나만 도난당했다고 가정하며, 남은 체육복이 하나이기에 다른 학생에게는 체육복
//을 빌려줄 수 없습니다
for(int i =1; i<=n; i++) {
if (lostList.contains(i) && reserveList.contains(i)) {
lostList.remove(lostList.indexOf(i));
reserveList.remove(reserveList.indexOf(i));
answer++;
}
}
//나는 여벌이 있는 친구를 기준으로
//앞에 있는 친구를 먼저 도난 당했는지 확인 후 도난 당했다면 여벌을 빌려주는 방식으로함
//그후 뒤에 있는 친구를 확인인 후 도난 당햇다면 여벌을 빌려줌
for(int i =1; i<=n; i++){
////앞에 있는 친구를 먼저 도난 당했는지 확인 후 도난 당했다면 여벌을 빌려줌
if(reserveList.contains(i) && lostList.contains(i-1)){
lostList.remove(lostList.indexOf(i-1));
answer++;
////그후 뒤에 있는 친구를 확인인 후 도난 당햇다면 여벌을 빌려줌
}else if(reserveList.contains(i) && lostList.contains(i+1)){
lostList.remove(lostList.indexOf(i+1));
answer++;
}
}
return answer;
}
}
문제 :https://programmers.co.kr/learn/courses/30/lessons/42862
코딩테스트 연습 - 체육복
점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번
programmers.co.kr
728x90
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
프로그래머스 [1차] 비밀지도 (0) | 2022.01.17 |
---|---|
프로그래머스 폰켓몬 (0) | 2022.01.17 |
프로그래머스 실패율 (0) | 2022.01.17 |
프로그래머스 소수찾기 (0) | 2022.01.16 |
프로그래머스 나머지가 1이 되는 수 찾기 (0) | 2022.01.16 |