코드 복사/붙여넣기 하는 당신이 아름답습니다.

4801 : Nine

풀이

짜라는대로 짜면 된다
약간 영어 독해 문제

코드

#include <cstdio>
#include <algorithm>
using namespace std;

inline int calc(int n) {
    int r = 0;
    while (n) {
        r += n%10==9;
        n /= 10;
    }
    return r;
}

int main() {
    int h, m;
    while (scanf("%d:%d", &h, &m) && (h || m)) {
        int a = h*60+m;
        int rcnt = -1, rerr = 1e9, ri = -1, rj = -1;
        for (int i = 0; i <= 99; i++) for (int j = 0; j <= 99; j++) {
            int b = i*60+j;
            int cnt = calc(i)+calc(j), err = abs(a-b);
            if (err*10 >= a) continue;
            if (cnt > rcnt || (cnt == rcnt && err < rerr)) {
                ri = i, rj = j, rcnt = cnt, rerr = err;
            }
        }
        printf("%02d:%02d\n", ri, rj);
    }

    return 0;
}

아무말

백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이

wookje.kwon's profile image

wookje.kwon

2018-09-07 16:21

Read more posts by this author