Leetcode Java Number of Students Unable to Eat Lunch
업데이트:
문제
코드
class Solution {
public int countStudents(int[] students, int[] sandwiches) {
int[] count = { 0, 0 };
int length = students.length;
for (int student : students) {
count[student]++;
}
for (int k = 0; 0 < length && 0 < count[sandwiches[k]]; k++, length--) {
count[sandwiches[k]]--;
}
return length;
}
}
결과
설명
- 학생 별 좋아하는 샌드위치 번호를 담은 students를 이용하여 순서대로 sandwiches의 샌드위치를 가져갈 때, 먹을 수 없는 학생의 수를 구하는 문제이다.
- 학생이 선호하는 샌드위치가 아닌 경우, students의 맨 뒤로 이동하여 다시 대기한다.
- 문제 풀이에 필요한 변수를 정의한다.
- count는 유형 별 샌드위치 갯수를 저장할 변수로, 2차원 배열로 초기화하여 샌드위치의 종류 별 갯수를 넣어준다.
- length는 students의 길이인 학생의 수를 저장한 변수이다.
-
k가 0부터 length가 0 초과이면서 count[sandwiches[k]]의 값이 0보다 클 때까지 k를 증가시키고 length를 감소시키며, count[sandwiches[k]]의 값을 감소시킨다.
- 반복이 종료되면 샌드위치를 가져가지 못한 학생의 수인 length를 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기