SWLUG/๋ฐฑ์ค€ BEAKJOON

[C] ๋ฐฑ์ค€/BAEKJOON 2839๋ฒˆ: ์„คํƒ• ๋ฐฐ๋‹ฌ

waterproof 2023. 11. 21. 23:39

 

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

 

2839๋ฒˆ: ์„คํƒ• ๋ฐฐ๋‹ฌ

์ƒ๊ทผ์ด๋Š” ์š”์ฆ˜ ์„คํƒ•๊ณต์žฅ์—์„œ ์„คํƒ•์„ ๋ฐฐ๋‹ฌํ•˜๊ณ  ์žˆ๋‹ค. ์ƒ๊ทผ์ด๋Š” ์ง€๊ธˆ ์‚ฌํƒ•๊ฐ€๊ฒŒ์— ์„คํƒ•์„ ์ •ํ™•ํ•˜๊ฒŒ Nํ‚ฌ๋กœ๊ทธ๋žจ์„ ๋ฐฐ๋‹ฌํ•ด์•ผ ํ•œ๋‹ค. ์„คํƒ•๊ณต์žฅ์—์„œ ๋งŒ๋“œ๋Š” ์„คํƒ•์€ ๋ด‰์ง€์— ๋‹ด๊ฒจ์ ธ ์žˆ๋‹ค. ๋ด‰์ง€๋Š” 3ํ‚ฌ๋กœ๊ทธ

www.acmicpc.net

 


[1] ๋ฌธ์ œ

 

๋ฌธ์ œ

์ƒ๊ทผ์ด๋Š” ์š”์ฆ˜ ์„คํƒ•๊ณต์žฅ์—์„œ ์„คํƒ•์„ ๋ฐฐ๋‹ฌํ•˜๊ณ  ์žˆ๋‹ค. ์ƒ๊ทผ์ด๋Š” ์ง€๊ธˆ ์‚ฌํƒ•๊ฐ€๊ฒŒ์— ์„คํƒ•์„ ์ •ํ™•ํ•˜๊ฒŒ Nํ‚ฌ๋กœ๊ทธ๋žจ์„ ๋ฐฐ๋‹ฌํ•ด์•ผ ํ•œ๋‹ค. ์„คํƒ•๊ณต์žฅ์—์„œ ๋งŒ๋“œ๋Š” ์„คํƒ•์€ ๋ด‰์ง€์— ๋‹ด๊ฒจ์ ธ ์žˆ๋‹ค. ๋ด‰์ง€๋Š” 3ํ‚ฌ๋กœ๊ทธ๋žจ ๋ด‰์ง€์™€ 5ํ‚ฌ๋กœ๊ทธ๋žจ ๋ด‰์ง€๊ฐ€ ์žˆ๋‹ค.

์ƒ๊ทผ์ด๋Š” ๊ท€์ฐฎ๊ธฐ ๋•Œ๋ฌธ์—, ์ตœ๋Œ€ํ•œ ์ ์€ ๋ด‰์ง€๋ฅผ ๋“ค๊ณ  ๊ฐ€๋ ค๊ณ  ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 18ํ‚ฌ๋กœ๊ทธ๋žจ ์„คํƒ•์„ ๋ฐฐ๋‹ฌํ•ด์•ผ ํ•  ๋•Œ, 3ํ‚ฌ๋กœ๊ทธ๋žจ ๋ด‰์ง€ 6๊ฐœ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋„ ๋˜์ง€๋งŒ, 5ํ‚ฌ๋กœ๊ทธ๋žจ 3๊ฐœ์™€ 3ํ‚ฌ๋กœ๊ทธ๋žจ 1๊ฐœ๋ฅผ ๋ฐฐ๋‹ฌํ•˜๋ฉด, ๋” ์ ์€ ๊ฐœ์ˆ˜์˜ ๋ด‰์ง€๋ฅผ ๋ฐฐ๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์ƒ๊ทผ์ด๊ฐ€ ์„คํƒ•์„ ์ •ํ™•ํ•˜๊ฒŒ Nํ‚ฌ๋กœ๊ทธ๋žจ ๋ฐฐ๋‹ฌํ•ด์•ผ ํ•  ๋•Œ, ๋ด‰์ง€ ๋ช‡ ๊ฐœ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋ฉด ๋˜๋Š”์ง€ ๊ทธ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— N์ด ์ฃผ์–ด์ง„๋‹ค. (3 ≤ N ≤ 5000)

 

์ถœ๋ ฅ

์ƒ๊ทผ์ด๊ฐ€ ๋ฐฐ๋‹ฌํ•˜๋Š” ๋ด‰์ง€์˜ ์ตœ์†Œ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ, ์ •ํ™•ํ•˜๊ฒŒ Nํ‚ฌ๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค๋ฉด -1์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

 


[2] ์ •๋‹ต ๋ฐ ํ•ด์„ค

 

# ์ •๋‹ต ์ฝ”๋“œ

#include <stdio.h>

int main() {
    int N;
    scanf("%d", &N);

    int count = 0;
    while (N > 0) {
        if (N % 5 == 0) {
            count += N / 5;
            N = 0;
        }
        else {
            N -= 3;
            count++;
        }
    }

    if (N == 0) {
        printf("%d\n", count);
    } else {
        printf("-1\n");
    }

    return 0;
}

 

 

 

# ํ•ด์„ค

 

1) while (N > 0) {...} : ์„คํƒ•์˜ ๋ฌด๊ฒŒ(N)๊ฐ€ 0๋ณด๋‹ค ํฐ ๋™์•ˆ ๋ฐ˜๋ณต

  • if (N % 5 == 0) : 5kg ๋ด‰์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ. 5๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด 5kg ๋ด‰์ง€๋งŒ ์‚ฌ์šฉํ•˜์—ฌ N์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
  • count += N / 5;: 5kg ๋ด‰์ง€์˜ ๊ฐœ์ˆ˜๋ฅผ ๋”ํ•œ๋‹ค.
  • N = 0;: ๋‚จ์€ ์„คํƒ•์˜ ๋ฌด๊ฒŒ๋ฅผ 0์œผ๋กœ ๋งŒ๋“ ๋‹ค.
  • else : 5kg ๋ด‰์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ.
  • N -= 3;: 3kg ๋ด‰์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ N์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด 3์„ ๋บ€๋‹ค.
  • count++;: 3kg ๋ด‰์ง€์˜ ๊ฐœ์ˆ˜๋ฅผ ๋”ํ•œ๋‹ค.

2) if (N == 0) { printf("%d\n", count); }: ์„คํƒ•์˜ ๋ฌด๊ฒŒ(N)๊ฐ€ 0์ด๋ฉด ์ •ํ™•ํ•˜๊ฒŒ Nํ‚ฌ๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ตœ์†Œ ๋ด‰์ง€ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

3) else { printf("-1\n"); }: ์„คํƒ•์˜ ๋ฌด๊ฒŒ(N)๊ฐ€ 0์ด ์•„๋‹ˆ๋ฉด ์ •ํ™•ํ•˜๊ฒŒ Nํ‚ฌ๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์ด๋ฏ€๋กœ -1์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

 


[3] ๋Š๋‚€ ์ 

 

์˜ˆ์ „์— Cํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ˆ˜์—… ์‹œ๊ฐ„์— ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ๋™์ „์„ ๊ฐ€์ง€๊ณ  ํŠน์ • ๊ธˆ์•ก์„ ๋งŒ๋“œ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์งœ๋ดค๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

๊ทธ๋Ÿฐ๋ฐ๋„ ๋‹ค์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์งœ๋ณด๋ ค๊ณ  ํ•˜๋‹ˆ๊นŒ ์‰ฝ์ง€๋Š” ์•Š์•˜๋‹ค... ใ…Žใ…Ž

์—ญ์‹œ ๋ณต์Šต์ด ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™๋‹ค!