๐Ÿ•๏ธ ICPC Sinchon/Greedy

[BOJ][C++] ๋ฐฑ์ค€ 14916๋ฒˆ: ๊ฑฐ์Šค๋ฆ„๋ˆ (Silver V)

์„ ๋‹ฌ 2025. 3. 10. 20:19
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

์ถ˜ํ–ฅ์ด๋Š” ํŽธ์˜์  ์นด์šดํ„ฐ์—์„œ ์ผํ•œ๋‹ค.
์†๋‹˜์ด 2์›์งœ๋ฆฌ์™€ 5์›์งœ๋ฆฌ๋กœ๋งŒ ๊ฑฐ์Šค๋ฆ„๋ˆ์„ ๋‹ฌ๋ผ๊ณ  ํ•œ๋‹ค. 2์›์งœ๋ฆฌ ๋™์ „๊ณผ 5์›์งœ๋ฆฌ ๋™์ „์€ ๋ฌดํ•œ์ • ๋งŽ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋™์ „์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ตœ์†Œ๊ฐ€ ๋˜๋„๋ก ๊ฑฐ์Šฌ๋Ÿฌ ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ๊ฑฐ์Šค๋ฆ„๋ˆ์ด n์ธ ๊ฒฝ์šฐ, ์ตœ์†Œ ๋™์ „์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ ์•Œ๋ ค์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.
์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฑฐ์Šค๋ฆ„๋ˆ์ด 15์›์ด๋ฉด 5์›์งœ๋ฆฌ 3๊ฐœ๋ฅผ, ๊ฑฐ์Šค๋ฆ„๋ˆ์ด 14์›์ด๋ฉด 5์›์งœ๋ฆฌ 2๊ฐœ์™€ 2์›์งœ๋ฆฌ 2๊ฐœ๋กœ ์ด 4๊ฐœ๋ฅผ, ๊ฑฐ์Šค๋ฆ„๋ˆ์ด 13์›์ด๋ฉด 5์›์งœ๋ฆฌ 1๊ฐœ์™€ 2์›์งœ๋ฆฌ 4๊ฐœ๋กœ ์ด 5๊ฐœ๋ฅผ ์ฃผ์–ด์•ผ ๋™์ „์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ตœ์†Œ๊ฐ€ ๋œ๋‹ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ๊ฑฐ์Šค๋ฆ„๋ˆ ์•ก์ˆ˜ n(1 โ‰ค n โ‰ค 100,000)์ด ์ฃผ์–ด์ง„๋‹ค.

์ถœ๋ ฅ

๊ฑฐ์Šค๋ฆ„๋ˆ ๋™์ „์˜ ์ตœ์†Œ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ ๊ฑฐ์Šฌ๋Ÿฌ ์ค„ ์ˆ˜ ์—†์œผ๋ฉด -1์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

ํ’€์ด

// ํ’€์ด : https://whkakrkr.tistory.com

#include <iostream>
#include <vector>

using namespace std;

int solution(int n) {
    if(n<5) {
        if(n%2 == 0) {
            return n/2;
        }
        return -1;
    }
    
    int cnt = 0;
    
    while(true) {
        if(n==0) {
            return cnt;
        }
        if(n<5) {
            if(n%2 == 0) {
                return cnt + n/2;
            }
            return (cnt-1) + (n+5)/2;
        }
        n-=5;
        cnt++;
    }
}

int main() {
    ios_base::sync_with_stdio(false);
	cout.tie(NULL);
	cin.tie(NULL);
	
	int n;
	cin >> n;
	
	cout << solution(n);
	
    return 0;
}
๋ฐ˜์‘ํ˜•