https://www.acmicpc.net/problem/1284
우선 조건들이 있으니, 조건문을 써야할 것이고...
나눗셈을 이용해서 한자리씩 계산하고, 마지막이 나눴을 때 몫이 0이면 그 때 끝난 거지.
경우가 1일때 얼마, 2일때 얼마라서 switch-case문으로 구분함.
0이 출력될 때 break하게 조건 걸어두고.
#include <iostream>
using namespace std;
int getResult(int);
int main()
{
while (true)
{
int n;
cin >> n;
if (n == 0)
break;
cout << getResult(n) << endl;
}
return 0;
}
int getResult(int n)
{
int sum = 2;
while (n)
{
int temp = n % 10;
switch(temp)
{
case 1:
sum += 2;
break;
case 0:
sum += 4;
break;
default:
sum += 3;
break;
}
n = n / 10;
if (n)
sum += 1;
}
return sum;
}
'백준 문제풀이 > 브론즈3' 카테고리의 다른 글
백준 2506번 - 점수계산 (0) | 2021.11.10 |
---|---|
백준 2355번 - 시그마 (0) | 2021.10.20 |
백준 2501번 - 약수 구하기 (0) | 2021.10.20 |
백준 1267번 - 핸드폰 요금 (0) | 2021.10.18 |