반응형
    
    
    
  
https://www.acmicpc.net/problem/1065
1065번: 한수
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나
www.acmicpc.net
코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int an(int n);
int an(int n) {
	int f, s, t = 0;	//first,second,third
	int count = 99;		// 한 자리수와 두 자리수는 모두 등차수열을 이룬다.
	if (n < 100) { return n; }
	else {
		for (int i = 100; i <= n; i++) {
			f = i % 10; // 일의 자리
			s = (i % 100) / 10; // 십의 자리
			t = i / 100; // 백의 자리
			if ((f - s) - (s - t) == 0) { count++; } // 공차 d가 같기 때문
		}
		return count;
	}
}
int main() {
	int n;
	scanf("%d", &n);
	printf("%d",an(n));
	return 0;
}☞ 풀이 전
문제를 이해하기 어렵지 않았고 그 문제를 일단 코드로 써보는데도 어렵지 않았다.
이전에 풀었던 셀프 넘버 함수와 매개변수의 자료형이 같아서일까 거부감 없이 잘 구상했다.
한 자리수와 두 자리수는 등차수열이 아닌가?라는 고민은 예제 출력이 말끔히 해결해줬었다.
한 자리수와 두 자리수는 모두 등차수열이다.
☞ 풀이 후
함수 내에서 각각의 자리에 위치한 수를 뽑아내기 위해
         f = n % 10; // 일의 자리 
         n /= 10;   // 오류의 원인 
         s = n % 10; // 십의 자리 
         t = n / 10; // 백의 자리 
위와 같이 작성했었으나 n/=10으로 for문이 더 이상 참이 될 수 없었다.. 
#include <stdio.h>
int seq(int n);
int main(void) {
    
    int input;
    
    scanf("%d", &input);
    
    printf("%d", seq(input));
    
}
int seq(int n) {
    
    int count=0;
    
    for(int i=1; i<n+1; i++) {
        if(0<i && i<100) count++;
        else if(i<1000) {
            if( i/100 - (i%100)/10 == (i%100)/10 - ((i%100)%10) ) count++;
        }
    }
    
    return count;
}
https://develop247.tistory.com/20개인적으로 정말 코드를 간결하게 잘 짠다고 생각하는 분인데 사소하지만 마지막 조건식이 같아서 좋았다..
100이상일 때 각각의 자리수를 따로 변수에 저장하지 않고 바로 계산하셨다.
또 한 자리수와 두 자리수를 for문을 통해 모두 count해주었다.
요런 식으로도 생각할 수 있겠구나 이 분걸 보면 항상 이렇게 느낀다.
반응형
    
    
    
  'Baekjoon' 카테고리의 다른 글
| [C] 백준 1008번 : A/B (0) | 2023.01.10 | 
|---|---|
| [C] 백준 2908번 : 상수 (0) | 2023.01.09 | 
| [C] 백준 4673번 : 셀프 넘버 (0) | 2023.01.07 | 
| [C]백준 15596번 : 정수 N개의 합 (0) | 2023.01.05 | 
| [C] 백준 4344번 : 평균은 넘겠지 (0) | 2023.01.04 | 
![[C] 백준 1065번 : 한수](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FHFpXe%2FbtrVO1vHagY%2FAAAAAAAAAAAAAAAAAAAAADYfT1q95TvjecNCJuGPt3lhiNzO91niZhIRrkmkI_Ue%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1764514799%26allow_ip%3D%26allow_referer%3D%26signature%3Dc8K7oVDOkwUfar2IKyyAjPccs5Q%253D)