반응형
https://www.acmicpc.net/problem/14916
greedy 문제였습니다
📕 풀이방법
📔 입력 및 초기화
변수 n을 선언 후 입력받습니다.
📔 풀이과정
1. 만들 수 없는 경우는 1과 3뿐입니다. 그 이상부터는 짝수는 2로, 5가 포함된다면 홀수도 나타낼 수 있기 때문에 표현가능합니다. 따라서 이 경우에는 -1을 출력합니다.
2. 나머지는 최소로 나타내기 위해 최대한 5를 사용하면 되므로 n을 5로 나눈 나머지가 짝수인지 홀수인지 여부에 따라 답이 나뉩니다.
2-1. 짝수인 경우 5로 나눠준 몫 + 5로 나눈 나머지를 2로 나눈 몫이 답이 됩니다.
2-2. 홀수인 경우 5로 나눠준 몫 - 1 + (5로 나눈 나머지 + 5)를 2로 나눈 몫이 답이 됩니다.
📔 정답출력
조건에 따른 답을 출력합니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
int n;
int main(){
cin >> n;
if(n == 1 || n == 3) { cout << -1; return 0;}
if(n % 5 % 2) cout << n / 5 - 1 + (n % 5 + 5) / 2;
else cout << n / 5 + n % 5 / 2;
}
'Algorithm > Greedy' 카테고리의 다른 글
(C++) - leetcode 2007번 : Find Original Array From Doubled Array (0) | 2021.09.29 |
---|---|
(C++) - 백준(BOJ) 17521번 : Byte Coin (0) | 2021.09.25 |
(C++) - 백준(BOJ) 18234번 : 당근 훔쳐 먹기 (0) | 2021.08.31 |
(C++) - 백준(BOJ) 6068번 : 시간 관리하기 (0) | 2021.08.20 |
(C++) - 백준(BOJ) 11608번 : Complexity (0) | 2021.08.03 |