728x90
반응형
1065번: 한수
문제
https://www.acmicpc.net/problem/1065
1065번: 한수
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나
www.acmicpc.net
풀이
어떤 수 X의 각 자릿수가 등차수열을 이루면 이 수를 한수라 한다. 1000 이하의 자연수 N을 입력받고 N 이하의 자연수 중 한수의 개수를 출력하는 문제다.
100 이하 즉, 한자리 수와 두 자릿수는 어떤 상황에서도 등차수열을 이룬다. 그리고 입력되는 N은 1000 이하의 수이기 때문에 1000은 한수가 아니므로 세 자리 수만 신경 쓰면 된다. 따라서 세 자릿수를 문자열 str로 바꾸어 str[1] - str[0] 와 str[2] - str[1] 가 같은지 확인하면 된다.
코드
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int n, cnt = 0;
cin >> n;
for (int i = 1; i <= n; i++) {
string str = to_string(i);
if (i < 100)
cnt++;
else if (str[1] - str[0] == str[2] - str[1])
cnt++;
}
cout << cnt << '\n';
return 0;
}
728x90
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
[백준 / BOJ] C++ 1085 직사각형에서 탈출 (0) | 2023.02.08 |
---|---|
[백준 / BOJ] C++ 1075 나누기 (0) | 2023.02.08 |
[백준 / BOJ] C++ 1041 주사위 (0) | 2023.02.08 |
[백준 / BOJ] C++ 9461 파도반 수열 (0) | 2023.02.08 |
[백준 / BOJ] C++ 11660 구간 합 구하기 5 (0) | 2023.02.07 |