문제 https://www.acmicpc.net/problem/1065
풀이
브루트포스로 풀면 되는 문제. 입력받은 수가 100 이하, 즉 2자리수라면 어떤 수든 한수이므로 n을 리턴해주면 되고, 100 이상인 수는 각 자리수를 변수에 저장한 후, 그 차이가 같으면 결과 변수를 증가한다.
코드
#include <iostream>
using namespace std;
int func(int n)
{
int res = 99;
for(int i=110; i<=n; i++)
{
int a1,a2,a3=0;
a1 = i%10;
a2 = (i/10)%10;
a3 = (i/100)%10;
int gap1, gap2;
gap1 = a1-a2;
gap2 = a2-a3;
if(gap1==gap2) res++;
}
return res;
}
int main()
{
int n;
cin>>n;
int res = 0;
if(n<100) res = n;
else if(n==1000)
{
n=999;
res=func(n);
}
else res = func(n);
cout<<res<<'\n';
}
'알고리즘 > 문제 풀이' 카테고리의 다른 글
백준 1929 - 소수 구하기(C++) (0) | 2022.03.21 |
---|---|
백준 1927 - 최소 힙 (0) | 2022.03.20 |
백준 1158 - 요세푸스 문제(C++) (0) | 2022.03.12 |
백준 4949 - 균형잡힌 세상 (0) | 2022.03.03 |
백준 10816 - 숫자 카드 2 (0) | 2022.02.23 |