조건문


1330번 (두 수 비교하기)

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split(' ');
const A = parseInt(input[0]);
const B = parseInt(input[1]);
if (A > B) {
console.log(">");
}
else if (A < B) {
console.log("<");
}
else {
console.log("==");
}
  • 기본적인 조건문 문법을 사용해볼 수 있었다.
  • 9498번 (시험 성적)

    const fs = require('fs');
    const input = fs.readFileSync('/dev/stdin');
    if (input > 89) {
    console.log("A");
    }
    else if (input > 79 && input < 90) {
    console.log("B");
    }
    else if (input > 69 && input < 80) {
    console.log("C");
    }
    else if (input > 59 && input < 70) {
    console.log("D");
    }
    else {
    console.log("F");
    }
  • AND 연산자(&&)를 사용해볼 수 있었다.
  • 2753번 (윤년)

    const fs = require("fs");
    const input = fs.readFileSync('/dev/stdin').toString();
    const year = parseInt(input);
    if (((year%4) == 0 & (year % 100) != 0) || (year % 400) == 0) {
    console.log(1);
    }
    else {
    console.log(0);
    }
  • OR 연산자를 사용해볼 수 있었다.
  • 2884번 (알람 시계)

    const fs = require("fs");
    const input = fs.readFileSync('dev/stdin').toString().split(' ');
    const H = parseInt(input[0]);
    const M = parseInt(input[1]);
    if (M>=45){
    console.log(H, M-45);
    } else if (M<45 && H!=0){
    console.log(H-1, (60+M)-45);
    } else if (M<45 && H==0){
    console.log(23, (60+M)-45);
    }
  • .split(’ ‘)을 이용하여 input의 시와 분을 잘라 배열로 입력받았다.
  • input의 시와 분을 각각 H와 M이라는 이름의 변수로 지정하면서 parseInt()를 통해 자료형을 숫자로 변환하였다.
  • M이 45와 같거나 더 큰 경우와 45보다 작은 경우를 나누어서 조건문을 작성하였다.
  • 그러나 H가 0인 경우 H-1은 -1이기 때문에 이 경우를 따로 지정하여 23으로 출력되게끔 하였다.
  • 2525번 (오븐 시계)

    const fs = require("fs");
    const input =
    fs.readFileSync("/dev/stdin").toString().trim().replace("\n", " ").split(' ');
    const H = parseInt(input[0]);
    const M = parseInt(input[1]);
    const cookMin = parseInt(input[2]);
    if ((M+cookMin)<60) {
    console.log(H, M+cookMin);
    } else if ((M+cookMin)>=60 && H+(Math.floor((M+cookMin)/60))<24) {
    console.log(H+(Math.floor((M+cookMin)/60)), (M+cookMin)%60);
    } else if ((M+cookMin)>=60 && H+(Math.floor((M+cookMin)/60))>=24) {
    console.log(H+(Math.floor((M+cookMin)/60)-24), (M+cookMin)%60);
    }
  • replace()를 이용하여 \n(줄바꿈)을 띄어쓰기로 대체했다.
  • 그 후 split(’ ‘)을 이용하여 배열로 입력받았다.
  • 변수 H는 현재 시, 변수 M은 현재 분, 변수 cookMin은 요리하는데에 필요한 시간이다(분). 모두 parseInt()를 이용하여 자료형을 숫자로 만들어주었다.
  • 만약 M과 cookMin을 더해도 60미만이라면 H를 변경할 필요가 없으므로 이 경우 H는 그대로, M은 cookMin을 더해서 출력하였다.
  • 그러나 만약 M과 cookMin을 더한 값이 60보다 크거나 같다면 H의 값이 변해야 한다.
  • H에 더할 값은 M과 cookMin을 더한 값을 60으로 나눈 다음 Math.floor를 통해 소수점을 탈락시켜 구하였다.
  • M과 cookMin을 더한 값에 60을 나눈 나머지를 통해 요리 후의 시간이 몇분인지 구하였다.
  • 그러나 예제에서는 24시부터 0시로 표현하므로, 요리 후 시각이 24시가 넘을 경우 24를 빼주었다.
  • 2480번 (주사위 세개)

    const fs = require("fs");
    const input =
    fs.readFileSync("/dev/stdin").toString().trim().split(' ').map(Number);
    const num1 = input[0];
    const num2 = input[1];
    const num3 = input[2];
    const bigNum = Math.max(...input);
    if (num1 == num2 && num2 == num3) {
    console.log(10000+(num1*1000));
    } else if (num1 == num2 || num1 == num3) {
    console.log(1000+(num1*100));
    } else if (num2 == num3) {
    console.log(1000+(num2*100));
    } else if (num1 != num2 && num2 != num3 && num1 != num3) {
    console.log(bigNum*100);
    }
  • 이번에는 .map(Number)를 이용해 자료형을 숫자로 변환했다.
  • Math.max() 함수를 이용해 배열에서 가장 큰 숫자를 반환받았다. 가장 작은 숫자를 반환받으려면 Math.min()을 사용하면 된다.
  • OR 연산자( || )를 사용하였다.