백준-Node.js-1267-핸드폰 요금

송철진·2023년 2월 9일
0

백준-Node.js

목록 보기
11/69

풀이

const fs = require('fs')
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n')
const time = input[1].split(' ').map(Number)

const solution = arr => {
  let [y,m] = [0, 0]
  arr.forEach(el => {
    y += (parseInt(el/30)+1)*10
    m += (parseInt(el/60)+1)*15
  })
    
  if(y === m){
    return ["Y M", y].join(' ')
  }else if(y < m){
    return ["Y", y].join(' ')
  }else{
    return ["M", m].join(' ')
  }
}

console.log(solution(time))

둘째 줄의 값을 배열 타입으로 입력받았을 때
배열의 각 요소에 대해 forEach()메서드로 순회하면서
영식,민식 요금제에 대한 요금값을 계산하고 각각 더한다

영식 요금제는

  • 30초 이상 = 20원,
  • 60초 이상 = 30원,
  • 90초 이상 = 40원,

...이므로 (30으로 나눈 몫+1) * 10 원이다

민식 요금제는

  • 60초 이상 = 30원,
  • 120초 이상 = 45원,
  • 180초 이상 = 60원,

...이므로 (60으로 나눈 몫+1) * 15 원이다

근데 이렇게 되면 0초일 때는 10원, 15원을 내야 할 것이다
하지만 주어진 입력값의 둘째 줄에는 통화시간이 있을 때만 값이 존재하므로
0초에 대한 예외 조건식은 쓸 필요가 없다.

profile
검색하고 기록하며 학습하는 백엔드 개발자

0개의 댓글