- 난이도: Lv1
프로그래머스 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42862
풀이 링크(GitHub): hayannn/CodingTest_Java/프로그래머스/1/42862.체육복
풀이 시간 : 30분
import java.util.*;
class Solution {
public int solution(int n, int[] lost, int[] reserve) {
int answer = 0;
Arrays.sort(lost);
Arrays.sort(reserve);
//다른 학생에게 체육복을 빌려줄 수 없는 경우 -> 여벌 체육복 O, 도난 O
for(int i=0; i<lost.length; i++){
for(int j=0; j<reserve.length; j++){
if(lost[i] == reserve[i]){
answer++;
break;
}
}
}
//도난 O -> 체육복을 빌릴 수 있는 학생 수
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]){
answer++;
break;
}
}
}
// finalAnswer = n - lost.length + answer;
return answer;
}
}
//before
//다른 학생에게 체육복을 빌려줄 수 없는 경우 -> 여벌 체육복 O, 도난 O
for(int i=0; i<lost.length; i++){
for(int j=0; j<reserve.length; j++){
if(lost[i] == reserve[i]){
answer++;
break;
}
}
}
//도난 O -> 체육복을 빌릴 수 있는 학생 수
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]){
answer++;
break;
}
}
}
//after
...
int answer = n - lost.length;
...
//다른 학생에게 체육복을 빌려줄 수 없는 경우 -> 여벌 체육복 O, 도난 O
for(int i=0; i<lost.length; i++){
for(int j=0; j<reserve.length; j++){
if(lost[i] == reserve[j]){
answer++;
lost[i] = -1;
reserve[j] = -1;
break;
}
}
}
//도난 O -> 체육복을 빌릴 수 있는 학생 수
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]){
answer++;
//lost[i] = -1;
reserve[j] = -1;
break;
}
}
}
풀이 시간 : 50분(첫 풀이 시간 포함)
import java.util.*;
class Solution {
public int solution(int n, int[] lost, int[] reserve) {
int answer = n - lost.length;
Arrays.sort(lost);
Arrays.sort(reserve);
//다른 학생에게 체육복을 빌려줄 수 없는 경우 -> 여벌 체육복 O, 도난 O
for(int i=0; i<lost.length; i++){
for(int j=0; j<reserve.length; j++){
if(lost[i] == reserve[j]){
answer++;
lost[i] = -1;
reserve[j] = -1;
break;
}
}
}
//도난 O -> 체육복을 빌릴 수 있는 학생 수
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]){
answer++;
//lost[i] = -1;
reserve[j] = -1;
break;
}
}
}
return answer;
}
}