[프로그래머스] 할인 행사(Java)

수경·2023년 3월 16일
0

problem solving

목록 보기
129/174

프로그래머스 - 할인 행사

풀이

  1. 원하는 제품 리스트를 개수에 맞게 저장
    -> ex) banana 3개면 list = banana, banana, banana 저장

  2. 할인 제품 리스트의 범위를 바꾸면서 새로운 리스트를 저장
    -> 새로운 리스트와 원하는 제품 리스트의 원소들이 같으면 count 증가

  3. count 반환


코드

import java.util.*;

class Solution {
    public int solution(String[] want, int[] number, String[] discount) {
        int result = 0;
        List<String> wants = new ArrayList<>();

        for (int i = 0; i < want.length; i++) {
            for (int j = 0; j < number[i]; j++) {
                wants.add(want[i]);
            }
        }
        wants.sort(Comparator.naturalOrder());
        String[] wantList = wants.toArray(new String[0]);

        for (int i = 0; i <= discount.length - 10; i++) {
            List<String> range = new ArrayList<>(Arrays.asList(Arrays.copyOfRange(discount, i, i + 10)));
            range.sort(Comparator.naturalOrder());
            String[] rangeList = range.toArray(new String[0]);

            if (Arrays.equals(wantList, rangeList)) result++;
        }

        return result;
    }
}
profile
어쩌다보니 tmi뿐인 블로그😎

0개의 댓글