💌문제
https://www.acmicpc.net/problem/1049
💌풀이
일단 먼저 6개가 들어있는 패키지의 가격대로 정렬한 리스트와 낱개로 살 때의 가격대로 정렬한 리스트를 만든다.
루프를 돌면서 만약에 n이 6보다 같거나 크면 패키지 가격으로 살 수 있기 때문에 n//6한 값만큼 패키지를 살 수 있으므로, 그렇게 연산해서 answer에 패키지 가격을 더해본다.
그리고, 낱개로 6개를 샀을 때의 가격도 계산해본다.
그 다음에 패키지가격으로 샀을 때, 낱개로 6개 샀을 때 중에서 더 작은 값을 저장한다.
그 다음에는 6으로 나눈 나머지, 즉 낱개로 사야하는 기타줄이 있다.
그래서 가격대로 정렬한 리스트의 가장 첫번째, 즉, 가장 싼 가격*남은 기타줄을 answer에 더해주면 된다.
💌파이썬 코드
n,m=map(int,input().split())
guitarPackage=[]
guitarOne=[]
for _ in range(m):
a,b=map(int,input().split())
guitarPackage.append(a) #6개가 들어있는 패키지의 가격, 낱개로 살 때의 가격
guitarOne.append(b)
guitarPackage.sort()
guitarOne.sort()
answer=0
if n>=6:
packageNum=(n//6)
mod=n%6
answer=min(guitarPackage[0]*packageNum,guitarOne[0]*6*packageNum)
answer+=min(guitarOne[0]*mod,guitarPackage[0])
else:
answer=min(guitarOne[0]*n,guitarPackage[0])
print(answer)
💌자바 코드
package org.example;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st=new StringTokenizer(br.readLine());
int n=Integer.parseInt(st.nextToken());
int m=Integer.parseInt(st.nextToken());
int[] guitarOne=new int[m];
int[] guitarPackage=new int[m];
int answer=0;
for (int i=0;i<m;i++){
StringTokenizer s=new StringTokenizer(br.readLine());
guitarPackage[i]=Integer.parseInt(s.nextToken());
guitarOne[i]=Integer.parseInt(s.nextToken());
}
Arrays.sort(guitarPackage);
Arrays.sort(guitarOne);
if(n>=6){
int mod=n%6;
int div=n/6;
answer=Math.min(div*guitarPackage[0],div*6*guitarOne[0]);
answer+=Math.min(guitarOne[0]*mod,guitarPackage[0]);
}else{
answer=Math.min(guitarOne[0]*n,guitarPackage[0]);
}
System.out.println(answer);
}
}
'알고리즘' 카테고리의 다른 글
[백준/파이썬(Python), 자바(JAVA)] 회의실 배정1931 Silver1 (0) | 2023.02.10 |
---|---|
[백준/파이썬(Python), 자바(JAVA)] 동전0 11047 Silver 4 (0) | 2023.02.09 |
[백준/파이썬(Python), 자바(JAVA)] 수리공 항승 1449(Silver 3) (0) | 2023.02.07 |
[백준/파이썬(Python)] 나무자르기 2805 (0) | 2023.02.06 |
[백준/파이썬(Python)] 2252 줄세우기(Gold 3) (2) | 2023.02.05 |
댓글