※ 여기서 다루는 백준 문제가 무엇인지 기술하지 않았습니다.
개인적으로 풀이과정을 간략하게만 썻기 때문에 참고자료로 쓰기 어려울 수도 있습니다.
const fs = require('fs')
const input = fs.readFileSync('/dev/stdin')
const testScore = parseInt(input)
if(90 <= testScore && testScore <= 100){
console.log('A')
}else if(80 <= testScore && testScore <= 89){
console.log('B')
}else if(70 <= testScore && testScore <= 79){
console.log('C')
}else if(60 <= testScore && testScore <= 69){
console.log('D')
}else{
console.log('F')
}
90 <= testScore <= 100
처럼 연산자를 겹쳐 쓸 수는 없다. 한번에 하나씩만 가능..toString()
까지도 쓸 필요없다.const fs = require('fs')
const input = fs.readFileSync('/dev/stdin')
const AD = parseInt(input)
const multiplesOf4 = AD % 4
const multiplesOf100 = AD % 100
const multiplesOf400 = AD % 400
if(multiplesOf4 === 0 && (multiplesOf100 !== 0 || multiplesOf400 === 0)){
console.log(1)
} else {
console.log(0)
}
%
라는 나머지 대입 연산자
를 이용했다.
예로 들어 "AD % 4"에서 AD가 4의 배수가 아니면 0이 나오지 않으며 이걸 이용하면 0과 같을 때 4의 배수가 참이라는 뜻을 만들어 주게 된다.
이번에도 '()'에서 ')' 를 기입 하지 못하는 오타로 고생했다. 역시 프로그래밍의 가장 큰 적은 오타인게 분명하다...
사실 코드는 여기서 더 줄일 수는 있다. const multiplesOf4
input
parseInt
같은거 다 치우고 const AD = fs.readFileSync('/dev/stdin')
로 바로 상수 지정하고 조건문에 돌입 해도 된다. 문제는 그렇게 풀어서 나오는 코드의 가독성은 최악이 된다. 그럼에도 점수에 불이익이 없다. 이런 점 때문에 문제풀이에만 집착하면 코드 습관에 나빠질 우려가 있어서 알고리즘으로 개발자를 평가하는 분위기를 싫어하는 분들이 제법 보인다.
예시 https://blog.naver.com/minesammul/221742132270