맛있는물회

[맛있는물회] <알고리즘> 2875번 "대회 or 인턴" 본문

IT/알고리즘

[맛있는물회] <알고리즘> 2875번 "대회 or 인턴"

맛있는물회 2019. 6. 28. 14:18

아주 간단한 그리디 문제이다.

k1과 k2로 나머지 값을 

k1 = n - 2 * i

k2 = m - i

이렇게 잡아주고 i를 ++해주며 반복문을 돌렸다.

만약에 

if (k1 < 0 || k2 < 0 || (k1 + k2 < k))

라면 종료해주고 이전의 MAX값을  출력한다.

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

#include <stdlib.h>

 

int main() {

    int n, m, k;

    int k1, k2;//k1은 여자나머지, k2는 남자나머지

    scanf("%d %d %d"&n, &m, &k);

    int MAX = -1, i = 0;

    while (1) {

        k1 = n - 2 * i;

        k2 = m - i;

        if (k1 < 0 || k2 < 0 || (k1 + k2 < k))

            break;

        

        if (i > MAX)

            MAX = i;

        i++;

    }

    printf("%d", MAX);

}

Colored by Color Scripter

cs
Comments