본문 바로가기
알고리즘

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

by 상후 2024. 7. 20.
728x90
반응형

 

 

https://github.com/ROUTINE-STUDY/Algorithm

알고리즘 스터디를 진행하고 있습니다. 😊
초보들로 구성되어있으며, 열심히 풀어보고 풀이 방식을 공유하고 피드백을 해주는 스터디입니다.
참여 문의는 댓글 혹은 GitHub 주소를 참고해주세요.

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/131127

 

프로그래머스

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

programmers.co.kr

 

문제 설명

 

 

풀이 방법
Map을 활용하여 풀이

 

내 코드(JAVA)

 

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> wantMap = new HashMap<>();

        for (int i = 0; i < want.length; i++) {
            wantMap.put(want[i], number[i]);
        }

        for (int i = 0; i <= discount.length - 10; i++) {
            Map<String, Integer> map = new HashMap<>(wantMap);

            for (int j = i; j < i + 10; j++) {
                if (map.getOrDefault(discount[j], -1) <= 0) {
                    break;
                }
                map.put(discount[j], map.get(discount[j]) - 1);
                
                if (j == i + 9) {
                    answer++;
                }
            }
        }
        
        return answer;
    }
}

 

 

 

728x90
반응형

댓글