PS/BOJ

[백준 BOJ] 1065 한수

Jubil 2020. 2. 29. 15:49
반응형

링크

https://www.acmicpc.net/problem/1065

 

풀이

N이 1,000보다 작거나 같은 자연수이기 때문에 1,2,3자리수만 고려하면 됩니다.

1,000은 한수가 아니기 때문이죠.

 

여기서 1자리수 2자리수는 모두 한수이기 때문에 3자리수만 고려하면 됩니다.

N이 1자리수거나 2자리수라면 N을 그대로 출력합니다. (모두 한수)

 

그게 아니라면 미리 cnt를 99로 초기값을 주고, 3자리수 중 한수가 얼마나 있는지 카운트해주면 됩니다.

123 <- 이렇게 세 자리수가 있으면 1-2와 2-3이 같으면 한수입니다.

여기서 1은 i / 100, 2는 i / 10 % 10, 3은 i % 10으로 표현할 수 있습니다.

이대로만 구현한다면 한수인지 아닌지 판단할 수 있습니다.

 

코드

//1065_한수
#include <cstdio>
using namespace std;

int n, cnt=99;

int main() {
	scanf("%d", &n);

	if (n <= 99) {
		printf("%d\n", n);
	} 
	else {
		for (int i = 100; i <= n; ++i) {
			if (i / 100 - i / 10 % 10 == i / 10 % 10 - i % 10) cnt++;
		}
		printf("%d\n", cnt);
	}

	return 0;
}

반응형

'PS > BOJ' 카테고리의 다른 글

[백준 BOJ] 2839 설탕 배달  (0) 2020.03.07
[백준 BOJ] 4673 셀프 넘버  (0) 2020.03.01
[백준 BOJ] 3047 ABC  (0) 2019.08.13
[백준 BOJ] 5585 거스름돈  (0) 2019.08.13
[백준 BOJ] 11399 ATM  (0) 2019.08.13