날짜 | 문제유형 | 난이도 |
---|---|---|
2020.11.08 | 그리디 | 1/5 |
여벌 체육복도난 -> IF
n명
1. lost에 있는 숫자가 reserve에도 있다면
lost, reserve 동시에 뺌
2. lost에 있는 숫자에 인접한 reserve 있는지 확인
있다면 lost와 reserve 숫자 둘다 빼줌
n-lost.length = 답
public class PhysicalEducationClothes {
public static void main(String[] args) {
int n =3;
int[] lost = {3};
int[] reserve = {1};
int count=0;
}
}
class Solution {
public int solution(int n, int[] lost, int[] reserve) {
int count=0;
for(int i=0;i<lost.length;i++){
for(int j=0;j< reserve.length;j++){
if(lost[i]==reserve[j]){
lost[i]=-1;
reserve[j]=-1;
count++;
break;
}
}
}
for(int i=0;i< lost.length;i++){
for(int j=0;j<reserve.length;j++){
if(lost[i]+1==reserve[j] || lost[i]-1==reserve[j]){
lost[i]=-1;
reserve[j]=-1;
count++;
break;
}
}
}
return n-lost.length+count;
}
}
풀이 참조
https://programmers.co.kr/learn/courses/30/lessons/42862/solution_groups?language=java
체육복 -> 배열을 뺸다 => 그냥 -1을 집어넣어도 된다
여벌의 체육복을 가진 사람이, 2벌, 3벌 추가로 가질 수 있기 때문에 한번 빌려주면 break 를 걸어주어서 멈추어 주어야 한다.
아이디어와 마찬가지로, 2가지 섹션이면 된다. 어렵게 생각할 필요 없음.
answer을 구하기 위해 문제를 푸는 것. count를 놓는 생각을 못했었음.