본문 바로가기
코딩테스트/문제 풀이

JavaScript 조건문 문제 풀이

by 학습하는 청년 2024. 12. 29.

최종 수정 : 24.12.29

JavaScript 조건문 문제 풀이


1. 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.

let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');

let score = Number(input[0]);

// 내 풀이
function check(score) {
    if (score >= 90) console.log('A');
    else if (score >= 80) console.log('B');
    else if (score >= 70) console.log('C');
    else if (score >= 60) console.log('D');
    else console.log('F');
}
check(score);

// 강의 풀이
function check(a) {
  if (90 <= a && a <= 100) console.log('A');
  else if (80 <= a && a <= 89) console.log('B');
  else if (70 <= a && a <= 79) console.log('C');
  else if (60 <= a && a <= 69) console.log('D');
  else console.log('F');
}

check(score);

핵심 아이디어

  • JavaScript를 이용해 조건 문법을 사용할 수 있다.

2. 알람 시계

let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');

// 내 풀이 방법
let [hour, minute] = input[0].split(' ').map(Number);

let totalMimutes = hour * 60 + mimute - 45;

if (totalMimutes < 0) totalMinutes += 24 * 60;

hour = Math.floor(totalMinutes / 60);
minute = totalMinutes % 60;

console.log(hour + ' ' + minute);

// 강의 풀이
let hour = Number(input[0].splite(' ')[0]);
let minute = Number(input[0].split(' ')[1]);

if (minute < 45) {
  hour -= 1;
  minute += 15;
  if (hour < 0) hour = 23;
}
else minute -= 45;

console.log(hour + " " + minute);

핵심 아이디어

  • 현재 시각이 주어졌을 때, 45분을 감소시킨다.
  • 0분보다 작아지면, 시(hour)가 1시간 감소한다.
  • 0시보다 작아지면, 시(hour)가 23시로 초기화된다.

3. 오븐 시계

let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');

let [a, b] = input[0].split(' ').map(Number);
let c = Number(input[1]);

let totalMinute = a * 60 + b + c;
totalMinute %= 1440;

let hour = parseInt(totalMinute / 60);
let minute = totalMinute % 60;

console.log(hour + ' ' + minute);

// 다른 풀이
let cook = Number(input[1]);

// 분 단위 계산
minute += cook;

// 60분이 넘어가면 시간 조정
while (minute >= 60) {
    minute -= 60;
    hour += 1;
}

// 24시가 넘어가면 0시부터 다시 시작
while (hour >= 24) {
    hour -= 24;
}

console.log(hour + ' ' + minute);

핵심 아이디어

입력: A시 B분
걸리는 시간: C분
  • 입력으로 주어진 시각을 '분'이 형태로 바꾸기
  • '분'이 주어졌을 때, 시각을 알려주는 기능을 작성하기

5. 주사위 세개

let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');

let a = Number(input[0].split(' ')[0]);
let b = Number(input[0].split(' ')[1]);
let c = Number(input[0].split(' ')[2]);

if (a == b && b == c) console.log(10000 + a * 1000);
else if (a == b) console.log(1000 + a * 100);
else if (a == c) console.log(1000 + a * 100);
else if (b == c) console.log(1000 + b * 100);
else console.log(Math.max(a, b, c) * 100);

핵심 아이디어

  • 주사위 3개를 던진다.
    1) 눈금 세 개가 모두 같으면 -> 10,000 + (같은 눈금) * 1,000원
    2) 눈금 두 개가 같으면 -> 1,000 + (같은 눈금) * 100원
    3) 눈금이 모두 다르면 -> (가장 큰 눈금) * 100

참고

패스트 캠퍼스(Javascript 코딩테스트 131개 예제 & CS지식으로 끝내기) Ch 01. 4강

댓글