Doby's Lab

[알고리즘] 백준 1075번: 나누기 (C++) 본문

PS/BOJ

[알고리즘] 백준 1075번: 나누기 (C++)

도비(Doby) 2022. 2. 26. 15:26

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

 

1075번: 나누기

첫째 줄에 N, 둘째 줄에 F가 주어진다. N은 100보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. F는 100보다 작거나 같은 자연수이다.

www.acmicpc.net

맨 끝에 두 자리가 조건을 만족하며 제일 작은 값이 되어야 하기 때문에 for문을 99부터 0까지 역순으로 돌려주었다.

코드에서 맨 처음에 n을 받으면 맨 뒤 두 자리는 00으로 바꾸는 작업도 해주어야 한다.

 

[AC 코드]

#include <iostream>
using namespace std;

int main(){
    int n, f;
    cin >> n >> f;
    n /= 100;
    n *= 100;
    
    int minMod = 100;
    int result = 100;
    
    for(int i = 99; i >= 0; i--){
        if(minMod >= (n + i) % f){
            minMod = (n + i) % f;
            result = (n + i) % 100;
        }
    }
    
    if(result < 10){
        cout << 0 << result;
    }
    else{
        cout << result;
    }
    
    return 0;
}
728x90