백준1065 - 한수 JS 본문
반응형
https://www.acmicpc.net/problem/1065
해당 문제는 문제에서 제시한 것처럼 '한수'의 갯수를 출력하는 문제다.
여기서 답에 대한 힌트는 예제에서 주어지는데,
100~110까지의 각 자릿수가 등차수열을 이루는 수는 존재하지 않으므로
100 미만의 모든 수는 한수라고 볼 수 있다.
그러므로 100 미만인 n이 주어진 경우 그대로 출력하고,
100 이상인 n이 주어지는 경우, 100부터 n까지의 한수의 수와 99(100 이하의 한수는 99개이므로) 합하여 출력하면 된다.
const fs = require('fs')
const input = fs.readFileSync(process.platform === "linux" ? "/dev/stdin":"입력.txt")
.toString().trim()
// input이 100을 넘는 경우
const upper100 = (n) => {
let hansu = 99
for(let i = 100 ; i <= n ; i ++) {
const str = String(i)
// 1. 아래와 같은 표현식은 옵셔널 체이닝 또는 단축평가를 검색
// 2. 입력값은 1000 이하로 주어지고 1000은 한수에 해당되지 않기 때문에
// 문자열화한 i의 인덱스로 자릿수에 직접 접근하여 등차수열인지 확인
str[0] - str[1] === str[1] - str[2] && hansu ++
}
return hansu
}
function solution(data) {
const result = data < 100
? data
: upper100(data)
console.log(result)
}
solution(input)
반응형
'개발 > algorithm' 카테고리의 다른 글
백준1940 - 주몽 (정렬, 투포인터) JS (0) | 2023.09.29 |
---|---|
백준2985 - 세 수 (배열에 함수저장) JS (0) | 2023.09.28 |
백준1149 - RGB거리 (DP) JS (1) | 2023.09.26 |
백준14501 - 퇴사(DP) JS (0) | 2023.09.25 |
백준1158 - 요세푸스 문제 (queue) JS (0) | 2023.09.24 |
Comments