반응형
#INFO
RATE : 800
출처 : Codeforces Round #479 (Div. 3)
https://codeforces.com/problemset/problem/977/A
#SOLVE
문제에서 주어진 조건대로 그대로 풀이하기만 하면 되는 간단한 문제였다.
if the last digit of the number is non-zero, she decreases the number by one
만약 digit(n)의 마지막 자리의 수가 0으로 끝나지 않는다면 1을 뺀다.
if the last digit of the number is zero, she divides the number by 10 (i.e. removes the last digit).
만약 digit(n)의 마지막 자리의 수가 0으로 끝난다면 10으로 나눈다.
n = 512, k = 4 인 상황을 예시로 들어 보도록 하자.
512는 마지막 자리가 2이기에 1을 빼준다. → 511
511은 마지막 자리가 1이기에 1을 빼준다. → 510
510은 마지막 자리가 0이기에 10으로 나누어 준다. → 51
51은 마지막 자리가 1이기에 1을 빼준다. → 50
k가 4이기에 4번 계산을 모두 수행하면 50이 도출된다.
#CODE
#include <iostream>
using namespace std;
int main(){
int n, k;
cin >> n >> k;
while(k--){
if(n % 10 == 0) n /= 10;
else n--;
}
cout << n << '\n';
return 0;
}
반응형
'Archive2 > ProblemSolving' 카테고리의 다른 글
[LeetCode] 1929. Concatenation of Array 문제 풀이 C++ (0) | 2022.07.31 |
---|---|
[CodeForces] 1075A The King's Race C++ 문제 풀이 (0) | 2022.07.27 |
[BOJ] C++ 2751 "수 정렬하기2" 문제 풀이 _ nov (0) | 2022.07.12 |
[BOJ] C++ 1929 "소수 구하기" 문제 풀이 _ nov (0) | 2022.07.11 |
[BOJ] C++ 1978 "소수 찾기" 문제 풀이 _ nov (0) | 2022.07.08 |