반응형
1. 문제
■ URL : https://www.acmicpc.net/problem/2839
2. 핵심요약
■ 문제유형 : 탐욕(Greedy) 알고리즘
3. 문제풀이 접근
■ 먼저 큰 봉지(5kg)를 이용하여 설탕을 담는다.
■ 남은 분량을 작은 봉지(3kg) 단위로 배분하여 정확히 떨어지는지(나머지가 0) 여부를 확인한다.
■ 작은 봉지(3kg) 단위로 배분하여 떨어지지 않으면(나머지가 0 아님) 큰 봉지(5kg)의 갯수를 하나씩 줄인다.
■ 남은 분량이 작은 봉지(3kg) 단위로 배분하여 정확히 떨어지는면(나머지가 0) 봉지의 합이 최소값이 된다.
4. 파이썬 코딩
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
isTest = True
if isTest:
f = open("./2839.txt", 'r')
N = int(f.readline())
else:
N = int(input())
answer = -1
for i in range(int(N / 5), -1, -1):
remains = N - i * 5
if remains % 3 == 0:
answer = i + int(remains / 3)
break
print(answer)
|
cs |
5. JavaScript 코딩
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
let isTest = true
let fs = require('fs');
let input;
if (isTest) {
input = fs.readFileSync('./2839.txt').toString().split('\n');
} else {
input = fs.readFileSync('/dev/stdin').toString().split('\n');
}
let N = input[0];
let answer = -1;
for(let i = parseInt(N / 5); i >= 0; i--) {
let remains = N - i * 5;
if (remains % 3 === 0) {
answer = i + parseInt(remains / 3);
break;
}
}
console.log(answer);
|
cs |
반응형
'알고리즘(코딩테스트)' 카테고리의 다른 글
[백준] 주유소 (0) | 2024.10.05 |
---|---|
[백준] 수들의 합 (0) | 2024.10.05 |
[백준] 읽어버린 괄호 (0) | 2024.10.04 |
[백준] ATM (1) | 2024.10.03 |
[백준] 동전 0 (0) | 2024.10.03 |