📄문제

📝 나의 통과 풀이
const input = require("fs").readFileSync("/dev/stdin").toString().trim();
let result = 0;
for (let i = 1; i <= Number(input); i++) {
if (i < 100) {
result++;
continue;
} else if (i < 1000) {
let first = Math.floor((i % 1000) / 100);
let second = Math.floor((i % 100) / 10);
let third = i % 10;
if (first - second === second - third) {
result++;
}
}
}
console.log(result);

⌨ 접근법
1. 한수 체크를 할 result 변수를 선언하고, 1부터 들어오는 입력 수만큼 for문을 돈다.
2. 100 미만은 모두 한수이므로 result ++ 하고 continue 해주고 조건이 1천 이하이므로 그 부분을 따로 나눠준다.
3. 천의자리, 백의자리, 일의 자리를 가져와서 한수인지 판별하고 맞으면 result++ 해준다.
4. 마지막에 완성된 result 출력!
😤 스토리
- 한수 = 각 자리가 등차수열을 이룬다. 라는 말이 이해가 안되서 시간이 좀 오래걸렸던 문제이다.
- 각자리 수끼리의 차이가 동일한 규칙이라는 것을 알게 되고 바로 해결!
- else로 나눠만 주면 정답일 줄 알았는데 계속 틀렸습니다가 나오길래 1000 미만이라는 조건을 걸어주니 다행히 통과했다 굳굳! (왜 그런지는 아직도 모르겠다 ㅋㅋㅋ)
📚 문제 링크
https://www.acmicpc.net/problem/1065
1065번: 한수
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나
www.acmicpc.net
'TEAM 알고싶다 > 성공 문제' 카테고리의 다른 글
[프로그래머스] JavaScript - 다리를 지나는 트럭 (0) | 2022.08.09 |
---|---|
[프로그래머스] JavaScript - 거리두기 확인하기 (0) | 2022.07.27 |
[Baekjoon (Node.js)] 10026번 적록색약 (0) | 2022.07.19 |
[Baekjoon (Node.js)] 11724번 연결 요소의 개수 (0) | 2022.07.13 |
[Baekjoon (Node.js)] 24479번 알고리즘 수업 - 깊이 우선 탐색 1 (0) | 2022.07.13 |