개발 낙서장

[프로그래머스][JAVA] 할인 행사 본문

카테고리 없음

[프로그래머스][JAVA] 할인 행사

권승준 2024. 3. 19. 09:41

할인 행사

https://school.programmers.co.kr/learn/courses/30/lessons/131127

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이 방법

문제를 처음 보고 뭔가 깔끔하고 신박한 풀이 방법이 없을까 고민했지만 생각나지 않아 완전 탐색으로 풀었다.

10개 중 원하는 물건들을 map에 저장한 다음 number와 개수를 비교해 해결했다.

소스 코드

더보기
import java.util.HashMap;
import java.util.Map;

class Solution {
    public int solution(String[] want, int[] number, String[] discount) {
        int answer = 0;

        Map<String, Integer> map = new HashMap<>();

        int j = 0;
        
        for(int i = 0; i <= discount.length - 10; i++) {
            for(String w : want) {
                map.put(w, 0);
            }

            for(j = i; j < i + 10; j++) {
                if(map.containsKey(discount[j])) {
                    map.put(discount[j], map.get(discount[j]) + 1);
                }
            }

            for(j = 0; j < want.length; j++) {
                if(map.get(want[j]) < number[j]) {
                    break;
                }
            }

            if(j == want.length) {
                answer ++;
            }
        }
        
        return answer;
    }
}
Comments