코딍코딍
코딩기록
코딍코딍
전체 방문자
오늘
어제
  • 분류 전체보기 (271)
    • 개발 (2)
    • Java (1)
    • 스프링 (28)
    • JPA (11)
    • Git (3)
    • 알고리즘 (160)
      • 백준 (132)
      • 프로그래머스 (8)
      • SWEA (20)
    • 토이 프로젝트 (14)
      • 간단한 Springboot CRUD (1)
      • 게시판 프로젝트 (13)
    • 알고리즘 개념정리 (8)
    • 오류 해결 (13)
    • 보류 (0)
    • AWS (5)
    • 트러블 슈팅 (0)
    • 회고 (3)
    • CS (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

최근 글

티스토리

hELLO · Designed By 정상우.
코딍코딍

코딩기록

1049번 : 기타줄
알고리즘/백준

1049번 : 기타줄

2022. 6. 28. 13:01

https://www.acmicpc.net/problem/1049

 

1049번: 기타줄

첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주

www.acmicpc.net

 

 

문제

 

 

코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();   sc.nextLine();
        int pkMin=1000;
        int piMin=1000;
        for(int i=0;i<m;i++) {
            int a = sc.nextInt();
            int b = sc.nextInt();   sc.nextLine();
            if(a<pkMin) pkMin=a;
            if(b<piMin) piMin=b;
        }
        int x = (n/6)*pkMin + (n-(n/6)*6)*piMin;
        int y = ((n/6)+1)*pkMin;
        int z = n*piMin;

        if(x<=y && x<=z) System.out.println(x);
        else if(y<=x && y<=z) System.out.println(y);
        else System.out.println(z);

    }
}

 

 

해결방법

줄을 교체하려 할 때 최소 비용을 구하는 경우의 수는 3가지이다.

1. 패키지 + 낱개로 사는 경우
2. 패키지로만 사는 경우
3. 낱개로만 사는 경우


이렇게 3가지를 비교하기 위해 우선 패키지의 최소금액과 낱개의 최소금액을 구해야 한다.
구한뒤 단순하게 비교만 해주면 문제는 해결된다.

'알고리즘 > 백준' 카테고리의 다른 글

1543번 : 문서 검색  (0) 2022.06.29
1339번 : 단어 수학  (0) 2022.06.28
4796번 : 캠핑  (0) 2022.06.26
16953번 : A -> B  (0) 2022.06.26
1439번 : 뒤집기  (0) 2022.06.26
    '알고리즘/백준' 카테고리의 다른 글
    • 1543번 : 문서 검색
    • 1339번 : 단어 수학
    • 4796번 : 캠핑
    • 16953번 : A -> B
    코딍코딍
    코딍코딍
    ㅎ2

    티스토리툴바