백준 알고리즘의 자잘한 제출코드들 (조건문)

Cho Dragoo·2021년 5월 5일
0

※ 여기서 다루는 백준 문제가 무엇인지 기술하지 않았습니다.
개인적으로 풀이과정을 간략하게만 썻기 때문에 참고자료로 쓰기 어려울 수도 있습니다.




백준 9498번 JavaScript 문제

본인이 제출한 답

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 처럼 연산자를 겹쳐 쓸 수는 없다. 한번에 하나씩만 가능.
  • input할 object가 하나라면 .toString() 까지도 쓸 필요없다.



백준 2753번 JavaScript 문제

본인이 제출한 답

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

profile
어떤 문제든 파악 할 수 있으며 해결책을 찾을 수 있는 개발능력을 꿈꾸고 있습니다.

0개의 댓글