[프로그래머스 Lv1.] 135808번 과일 장수 (JAVA)

2024. 11. 26. 17:11·Coding Test/프로그래머스[JAVA]

문제 설명

과일 장수가 사과 상자를 포장하고 있습니다. 사과는 상태에 따라 1점부터 k점까지의 점수로 분류하며, k점이 최상품의 사과이고 1점이 최하품의 사과입니다. 사과 한 상자의 가격은 다음과 같이 결정됩니다.

  • 한 상자에 사과를 m개씩 담아 포장합니다.
  • 상자에 담긴 사과 중 가장 낮은 점수가 p (1 ≤ p ≤ k)점인 경우, 사과 한 상자의 가격은 p * m 입니다.

과일 장수가 가능한 많은 사과를 팔았을 때, 얻을 수 있는 최대 이익을 계산하고자 합니다.(사과는 상자 단위로만 판매하며, 남는 사과는 버립니다)

예를 들어, k = 3, m = 4, 사과 7개의 점수가 [1, 2, 3, 1, 2, 3, 1]이라면, 다음과 같이 [2, 3, 2, 3]으로 구성된 사과 상자 1개를 만들어 판매하여 최대 이익을 얻을 수 있습니다.

  • (최저 사과 점수) x (한 상자에 담긴 사과 개수) x (상자의 개수) = 2 x 4 x 1 = 8

사과의 최대 점수 k, 한 상자에 들어가는 사과의 수 m, 사과들의 점수 score가 주어졌을 때, 과일 장수가 얻을 수 있는 최대 이익을 return하는 solution 함수를 완성해주세요.

제한사항

  • 3 ≤ k ≤ 9
  • 3 ≤ m ≤ 10
  • 7 ≤ score의 길이 ≤ 1,000,000
    • 1 ≤ score[i] ≤ k
  • 이익이 발생하지 않는 경우에는 0을 return 해주세요.

입출력 예

k m score  result
3 4 [1, 2, 3, 1, 2, 3, 1] 8
4 3 [4, 1, 2, 2, 4, 4, 4, 4, 1, 2, 4, 2] 33

풀이

import java.util.*;

class Solution {
    public int solution(int k, int m, int[] score) {
        int answer = 0;
        
        score = Arrays.stream(score).boxed().sorted(Collections.reverseOrder()).mapToInt(i->i).toArray();
        
        int len = score.length % m == 0 ? score.length : m * (score.length / m);
        for(int i=m-1; i<len; i+=m) {
            if(score[i] <= k) answer += score[i] * m;
        }
        return answer;
    }
}

 

저작자표시 비영리 변경금지 (새창열림)

'Coding Test > 프로그래머스[JAVA]' 카테고리의 다른 글

[프로그래머스 Lv1.] 12977번 소수 만들기 (JAVA)  (0) 2024.11.27
[프로그래머스 Lv1.] 12921번 소수 찾기 (JAVA)  (0) 2024.11.26
[프로그래머스 Lv1.] 12901번 2016년 (JAVA)  (0) 2024.11.26
[프로그래머스 Lv1.] 159994번 카드 뭉치 (JAVA)  (2) 2024.11.26
[프로그래머스 Lv1.] 176963번 추억 점수 (JAVA)  (0) 2024.11.26
'Coding Test/프로그래머스[JAVA]' 카테고리의 다른 글
  • [프로그래머스 Lv1.] 12977번 소수 만들기 (JAVA)
  • [프로그래머스 Lv1.] 12921번 소수 찾기 (JAVA)
  • [프로그래머스 Lv1.] 12901번 2016년 (JAVA)
  • [프로그래머스 Lv1.] 159994번 카드 뭉치 (JAVA)
woojin._.
woojin._.
여러가지 개발을 해보며 발생하는 이야기들에 대한 블로그입니다:)
  • woojin._.
    Jin's Dev Story
    woojin._.
  • 전체
    오늘
    어제
    • 분류 전체보기 (829)
      • Tools (25)
        • eGovFrame (3)
        • GeoServer (3)
        • QGIS (2)
        • LabelImg (2)
        • Git (6)
        • GitHub (1)
        • Eclipse (7)
        • Visual Studio (1)
      • Web & Android (121)
        • SpringBoot (37)
        • Three.js (2)
        • Spring Data JPA (9)
        • 스프링 부트 쇼핑몰 프로젝트 with JPA (25)
        • Thymeleaf (4)
        • Spring Security (15)
        • Flutter (29)
      • Programming Language (61)
        • JAVA (27)
        • JavaScript (14)
        • Dart (2)
        • Python (15)
        • PHP (3)
      • Database (43)
        • PostgreSQL (32)
        • MYSQL (7)
        • Oracle (3)
        • MSSQL (1)
      • SERVER (17)
        • TCP_IP (3)
        • 리눅스 (7)
        • AWS (7)
      • Coding Test (445)
        • 백준[JAVA] (108)
        • 프로그래머스[JAVA] (260)
        • 알고리즘 고득점 Kit[JAVA] (3)
        • SQL 고득점 Kit[ORACLE] (74)
      • CS 지식 (49)
        • [자료구조] (14)
        • [네트워크] (12)
        • [데이터베이스] (10)
        • [알고리즘] (9)
        • [운영체제] (4)
      • 기타 (6)
      • 자격증 & 공부 (62)
        • 정보처리기사 (2)
        • SQLD (6)
        • 네트워크관리사 2급 (5)
        • 리눅스마스터 1급 (44)
        • 리눅스마스터 2급 (1)
        • ISTQB (3)
        • 시스템보안 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    baekjoon
    자바
    DB
    CS지식
    데이터베이스
    데이터
    python
    postgresql
    플러터
    CS
    springboot
    Spring Security
    Java
    JPA
    시큐리티
    Linux
    Oracle
    스프링
    리눅스
    백준
    programmers
    리눅스마스터
    리눅스마스터 1급
    spring
    프로그래머스
    스프링부트
    backjoon
    스프링 부트 쇼핑몰 프로젝트 with JPA
    Flutter
    pcce 기출문제
  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
woojin._.
[프로그래머스 Lv1.] 135808번 과일 장수 (JAVA)
상단으로

티스토리툴바