#include <iostream>
using namespace std;
int main()
{
int N; //고정
cin >> N;
int lists[3] = {};
int count,div_N,theN;
int listCount = 0;
if (N < 100) printf("%d ", N);
else //(N>=100)
{
for (int i = 100; i <= N; i++)
{
theN = i; div_N = theN; count = 0;
while (theN != 0)
{
div_N = theN % 10;
theN /= 10;
lists[count] = div_N;
count++;
if (count == 3) break;
}
if ((lists[0] - lists[1] == lists[1] - lists[2]) && i != 1000) listCount++;
}
printf("%d", 99 + listCount);
}
return 0;
}
단계별 풀어보기-함수 문제이다만... 함수쓰기 귀찮아서 그냥 그대로했다. 가장 처리가 어려웠던 건 입력값으로 1000을 받았을 때 지정한 배열의 크기(3)를 넘어가므로 별도로 처리해야하는 것이었는데 이걸 함수로 했으면 훨씬 코드가 짧아졌을 것 같긴 하다.
Run-Time Check Failure #2 - Stack around the variable 'lists' was corrupted. 라는 오류가 났었는데 이 오류는 위에 말했던 것처럼 1000을 입력값으로 받았을 때 크기가 3인 배열의 인덱스 번호인 count가 3이되므로 위 오류가 났던 것 1000이 입력 값일 때를 따로 처리함으로써 해결했다.
'백준 > C++' 카테고리의 다른 글
[백준/C++] 5622번 다이얼 (0) | 2020.11.07 |
---|---|
[백준/C++] 1316번 그룹 단어 체커 (0) | 2020.11.07 |
[백준/C++] 2941번 크로아티아 알파벳 (0) | 2020.11.07 |
[백준/C++] 1193번 분수찾기 (0) | 2020.11.04 |
[백준/C++] 10996번 별 찍기 - 21 (0) | 2020.10.12 |
댓글