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

2022. 10. 7. 19:58·코딩 테스트

새롭게 나온 레벨 2 문제인데 입력값이 크지도 않고 로직이 복잡한 것도 아니라서 어렵지 않다.

어느 기업인지는 기억이 안나지만 코딩 테스트에서 비슷한 문제를 풀었던 기억이 있다.


로직

i일부터 10일동안 할인 품목을 map에 넣는다. 그리고 각 품목을 비교하는데 하나라도 number보다 작으면 안 되므로 작은 값이 나오면 탐색을 중단한다. 또한 map에 want 품목이 하나라도 없으면 안 되므로 마찬가지로 탐색을 중단한다.

모든 조건이 맞으면 answer 값을 증가시킨다.

 

최종 코드

import java.util.*;
class Solution {
    public int solution(String[] want, int[] number, String[] discount) {
        int answer = 0;
        
        // i부터 10일간 할인 품목 map에 넣기
        for(int i = 0; i < discount.length; i++) {
            Map<String, Integer> dis = new HashMap<>();
            int cnt = 0;
            for(int j = i; j < discount.length; j++) {
                // 10일이 지나면 중단
                if(cnt == 10) {
                    break;
                }
                dis.put(discount[j], dis.getOrDefault(discount[j], 0) + 1);
                cnt++;
            }
            
            // number와 map의 값을 비교 
            boolean flag = false;
            for(int j = 0; j < want.length; j++) {
                // map에 want 물품이 없으면 탐색 종료
            if(dis.get(want[j]) == null) {
                flag = true;
                break;
                }
                // map의 값보다 want 값이 크면
            if(number[j] > dis.get(want[j])) {
                    flag = true;
                    break;
                }
            }
        
            if(!flag) {
                answer++;
            }
            
        }
        return answer;
    }
}
저작자표시 (새창열림)

'코딩 테스트' 카테고리의 다른 글

(Java) 프로그래머스 - 단어 변환  (0) 2022.10.11
(Java) 프로그래머스 - 혼자 놀기의 달인  (0) 2022.10.07
(Java) 프로그래머스 - 네트워크  (0) 2022.10.06
(Java) 프로그래머스 - 야근 지수  (0) 2022.10.05
(Java) 프로그래머스 - 최고의 집합  (0) 2022.10.04
'코딩 테스트' 카테고리의 다른 글
  • (Java) 프로그래머스 - 단어 변환
  • (Java) 프로그래머스 - 혼자 놀기의 달인
  • (Java) 프로그래머스 - 네트워크
  • (Java) 프로그래머스 - 야근 지수
로승리
로승리
  • 로승리
    Roy's Blog
    로승리
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Issuefy
      • Language
      • Spring
      • Database
      • Network
      • Kubernetes
      • AWS
      • 코드스쿼드
      • 코딩 테스트
      • 생각정리
      • 국비지원
      • 회고
      • 컨퍼런스, 세미나
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
로승리
(Java) 프로그래머스 - 할인 행사
상단으로

티스토리툴바