๋ฌธ์
https://www.acmicpc.net/problem/1065
์ค๋ช
๋ฌธ์ ๋ฅผ ์ดํดํ ์ ๋ง ์๋ค๋ฉด ํธ๋๋ฐ๋ ์๊ฐ์ด ์ผ๋ง ๊ฑธ๋ฆฌ์ง ์๋ ๋ฌธ์ ์์ผ๋ ๋ฌธ์ ๋ฅผ ์ดํดํ๋๋ฐ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ ธ๋ค. ๋จผ์ ์ดํดํ๋ฐ๋ก ๋ค์ ์ค๋ช ํ๋ฉด ๋จผ์ 1~9 ๊น์ง์ ์๋ ์์ด์ ๊ธธ์ด๊ฐ 1 ์ธ ์์ด๋ก ๋ชจ๋ ๋ฑ์ฐจ์์ด๋ก ์ทจ๊ธํ๋๊ฒ ๊ฐ๋ฅํ๊ณ , ๋์๋ฆฌ์. ์ฆ 10~99 ๋ ์์ด์ ๊ธธ์ด๊ฐ 2 ์ธ ์์ด๋ก ์ด ๋ํ ๋ชจ๋ ๋ฑ์ฐจ ์์ด๋ก ์ทจ๊ธํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค. 3 ์๋ฆฌ ์(100~999)๋ ์์ด์ ๊ธธ์ด๊ฐ 3 ์ผ๋ก ์ฌ๊ธฐ์๋ถํฐ๋ 3 ๊ฐ ๊ฐ์ ์์ ๋ฑ์ฐจ๊ฐ ๋์ผํด์ผ ๋ฑ์ฐจ์์ด์ด ๋ ์ ์์ผ๋ฏ๋ก ์ด๋ฅผ ํ๋จํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋๋๋ก ํ๋ก๊ทธ๋จ์ ์ง์ผ ํ๋ค. ๋จผ์ ์ ๋ ฅ๋ ์(1000 ์ดํ์ ์)๊ฐ 100 ์ด์, ์ฆ ์ธ์๋ฆฌ์ ๋ผ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ์นด์ดํ ์ ์์ํ๊ธฐ์ ์ ํ์๋ฆฌ์์ ๋์๋ฆฌ์๋ ๋ชจ๋ ํ์์ ํฌํจํ ์ ์์ผ๋ฏ๋ก ๊ธฐ๋ณธ 99 ๊ฐ ๋ถํฐ ์นด์ดํ ์ ์์ํ๋๋ก ํ๊ณ , ๋์๋ฆฌ ์ ๋ผ๋ฉด ์ ๋ ฅ๋ ์๊ฐ ๊ณง ํ์์ ๊ฐฏ์์ด๋ฏ๋ก ๊ทธ๋๋ก ์ถ๋ ฅํ๋๋ก ํ๋ค. ์ธ์๋ฆฌ ์ ์ผ๋ while๋ฌธ์ ์ด์ฉํด ํ๋ํ๋ ํ์์ ์ฌ๋ถ๋ฅผ ํ๋จํ๋๋ก ํ๋ฉฐ, ๋ง์ฝ 3 ์ซ์์ ๊ฐ๊ฒฉ์ด ๋์ผํ๋ค๋ฉด ๊ฒฐ๊ณผ ๊ฐ์ +1 ์ ํ์ฌ ์นด์ดํ ํ๋๋กํ๊ณ ์ต์ข ์ ์ผ๋ก ์ถ๋ ฅ๋ฌธ์ผ๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ด๋๋๋ก ํ๋ค. ๋ ์์ธ์ ์ผ๋ก ๋ค์๋ฆฌ์๋ 1000 ํ๋๊ฐ ์ ๋ ฅ๋ ๊ฐ๋ฅ์ฑ์ด ์๊ณ , 1000 ์ ๊ฒฝ์ฐ ๋ณ๋์ ์์ ์ ์ํด์ฃผ๋ฉด ๋ฌธ์ ๊ฐ ์๊ธธ ๊ฐ๋ฅ์ฑ์ด ์์ ์ ์์ด ์นด์ดํ ํ๋ค๊ฐ 1000 ์ด ๋๋ฉด ๊ทธ๋ฅ while๋ฌธ์ ๋น ์ ธ๋๊ฐ๋๋ก ํ์๋ค.
์ฝ๋
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int n,result=0;
scanf("%d", &n);
if (n >= 100)
{
result += 99;
int i = 100;
while (i<=n)
{
if (i == 1000)
break;
else
{
int num[3];
num[0] = i / 100;
num[1] = ((i % 100) - (i % 10))/10;
num[2] = i % 10;
if ((num[1] - num[0]) == (num[2] - num[1]))
result++;
i++;
}
}
}
else
result = n;
printf("%d", result);
return 0;
}