728x90
- 반복문을 이용한 구간 설정: discount 배열에서 연속된 10개의 요소를 차례대로 검사합니다
- 조건을 만족하는지 확인: 각 구간에서는 want 배열에 포함된 상품을 찾아서 number 배열의 해당 상품 재고를 감소시킵니다. 그리고 남은 재고가 모두 0 이하인지 확인합니다.
- 조건을 만족할 때 결과를 증가: 남은 재고가 모두 0 이하인 경우에만 결과 값을 증가시킵니다.
- 최종 결과 반환: 모든 구간에 대해 조건을 만족하는 횟수를 최종 결과로 반환합니다.
정답은 더보기 클릭
더보기
import java.util.Arrays;
class Solution {
public int solution(String[] want, int[] number, String[] discount) {
int result = 0;
// 주어진 discount 배열에서 10개의 연속된 요소를 검사하기 위한 반복문
for (int i = 0; i < discount.length - 9; i++) {
boolean isMatch = true; // 현재 검사 중인 10개 요소가 조건을 만족하는지 여부
// 남은 재고를 추적하기 위한 배열을 복사하여 초기화
int[] remainingNumbers = Arrays.copyOf(number, number.length);
// discount 배열에서 원하는 상품이 있는지 확인하고 재고 감소
for (int j = i; j < i+10; j++) {
// 해당 상품 index 찾기
int idx = Arrays.asList(want).indexOf(discount[j]);
// want 배열에 없는 상품이면 넘어감
if (idx == -1) {
continue;
}
// 해당 상품의 재고 감소
remainingNumbers[idx]--;
}
// 남은 재고가 모두 0이면 조건을 만족하는 경우이므로 결과 값을 증가
for (int k = 0; k < remainingNumbers.length; k++) {
if (remainingNumbers[k] != 0) {
isMatch = false;
break;
}
}
// 조건을 만족하는 경우 결과 값 증가
if (isMatch) {
result++;
}
}
return result; // 최종 결과 반환
}
}
728x90
'프로그래머스(Java) > Level 2' 카테고리의 다른 글
[프로그래머스] 의상 (0) | 2024.07.09 |
---|---|
[프로그래머스] 타겟넘버 (0) | 2024.07.09 |
[프로그래머스] 괄호 회전하기 (0) | 2024.07.01 |
[프로그래머스] N개의 최소공배수 (0) | 2024.06.29 |
[프로그래머스] 영어 끝말잇기 (0) | 2024.06.27 |