반응형
#include<stdio.h>
int main(){
int n;
scanf("%d", &n);
if(n<100){
printf("%d", n);
}else if(n == 1000){
printf("144");
}else{
int count = 0;
for(int i=100; i<n+1; i++){
int temp = i/100; //백의 자리수
int temp1 = (i/10)%10; //십의 자리수
int temp2 = i%10; //일의 자리수
if(temp1-temp == temp2-temp1){
count += 1;
}
}
printf("%d", 99+count); //100미만의 수들때문에 99를 더함
}
}
설명
n이 1000이하 이기 때문에, 1,2자리수와 3자리수와 유일한 4자리인 1000을 구분을 해주었다. 1,2자리일때는 무슨 수가 오던지 등차수열을 이루기 때문에 n이 100미만이면 그냥 넣은 값 그대로 출력하면 된다. 1000일때는 그냥 유일한 4자리이기도 하고 예제 입력에 1000이 144라는 것을 알려주어 1000이면 144 출력하도록 하였다. 3자리가 그나마 브루트포스를 사용하는데, for문으로 100부터 n까지 돌리면서, 각 자리의 숫자를 분리해서 백의 자리수와 십의 자리수를 뺀 값과 십의 자리수와 일의 자리수를 뺀 값이 같을 때 카운트를 +1 해준 후에 출력할때 99를 더해주는 식으로 풀었다.
문제점
없다.
반응형
'코딩 이야기 > 백준 풀이' 카테고리의 다른 글
백준 2217번: 로프 C++코드(정렬, 그리디 알고리즘) (0) | 2021.07.25 |
---|---|
백준 11650번: 좌표 정렬하기 C++코드(정렬) (0) | 2021.07.24 |
백준 1316번: 그룹 단어 체커 C언어 코드(구현) (5) | 2021.07.22 |
백준 2920번: 음계 c++ 코드(구현) (0) | 2021.07.21 |
백준 1924번: 2007년 c++ 코드(구현) (0) | 2021.07.21 |