✏️기록하는 즐거움
article thumbnail
반응형

1. Link

 

1065번: 한수

어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나

www.acmicpc.net

2.  

3. 문제

어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다.
등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다.
N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 

입력 > 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다.
출력 > 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.
<bash />
110

5. | 예제 출력

<bash />
99

 

6. 제출

<bash />
const input = Number( (process.platform === "linux" ? require("fs").readFileSync("/dev/stdin").toString() : `110` ).trim() ); let N = input; let count = 0; for (let i = 1; i <= N; i++) { let num = String(i); if (i < 100) { count++; continue; } if (Number(num[1]) - Number(num[0]) === Number(num[2]) - Number(num[1])) { count++; } } console.log(count);

 

7. 풀이과정

1부터 99까지는 한 자리 혹은 두 자리 숫자로 이루어져 있기 때문에 각 자리가 등차수열인 한수이다.

따라서 i가 100보다 작을 때 count를 증가시키면 된다.

 

입력받은 N은 1,000보다 작은 자연수라는 조건에 의해서 숫자는 최대 세 자리로 이루어져 있다.

1부터 99까지 두 자리 숫자까지는 한수를 체크했기 때문에 100부터 999까지의 각 자리 수의 차이가 등차수열을 이루는지 체크하여 count 값을 증가시킨다.

 


8. Comment

반응형
profile

✏️기록하는 즐거움

@nor_coding

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!