풀이
class Solution {
public int solution(int n, int[] lost, int[] reserve) {
int answer = 0;
int change = 1; // 변화 감지 변수
int[] arr1 = new int[n]; // 전체 학생 배열
// 전체 학생이 하나의 체육복을 가짐
for(int i=0; i<n; i++){
arr1[i] = 1;
}
// 체육복을 잃어 버린 학생 구분
for(int i=0; i<lost.length; i++){
arr1[lost[i]-1] = 0;
}
// 체육복이 2개인 학생 구분
for(int i=0; i<reserve.length; i++){
if(arr1[reserve[i]-1] == 0){
arr1[reserve[i]-1] = 1;
}else{
arr1[reserve[i]-1] = 2;
}
}
// 체육복 빌려주기
for(int i=0; i<arr1.length; i++){
if(arr1[i] == 2){
if(i==0){
if(arr1[i+1] == 0){
arr1[i] = 1;
arr1[i+1] = 1;
change = 1;
}
}else if(i!=0 && i != arr1.length-1){
if(arr1[i-1] == 0){
arr1[i-1] = 1;
arr1[i] = 1;
change = 1;
}else if(arr1[i+1] == 0){
arr1[i] = 1;
arr1[i+1] = 1;
change = 1;
}
}else if(i == arr1.length-1){
if(arr1[i-1] == 0){
arr1[i-1] = 1;
arr1[i] = 1;
change = 1;
}
}
}
}
for(int i=0; i<arr1.length; i++){
if(arr1[i] != 0){
answer++;
}
}
return answer;
}
}
결과
'코딩 문제 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 코딩테스트 - Level2 - 기능개발 (0) | 2021.02.22 |
---|---|
프로그래머스 - 코딩테스트 - Level1 - K번째수 (0) | 2021.02.22 |
프로그래머스 - 코딩테스트 - Level1 - 모의고사 (0) | 2021.02.22 |
프로그래머스 - 코딩테스트 - Level1 - 신규 아이디 추천 (0) | 2021.02.22 |
프로그래머스 - 코딩테스트 - Level1 - 완주하지 못한 선수 (0) | 2021.02.22 |