[백준] (2단계)조건문

JH Cho·2022년 8월 1일
0

알고리즘

목록 보기
7/12

2-1(1330) 두 수 비교하기

const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";

let input = fs.readFileSync(filePath).toString().split("\n");
// console.log(input); [ '1 2', '10 2', '5 5' ]
input = input[2];
input = input.split(" ").map((item) => +item);
// console.log(input); [ 1, 2 ]

function compare(A, B) {
  if (A > B) {
    console.log(">");
  } else if (A < B) {
    console.log("<");
  } else {
    console.log("==");
  }
}
compare(input[0], input[1]); //  <
//run time err 뜸. 결과는 잘 나오는데
-------------------------------------
  const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";



let [A, B] = [input[0], input[1]];
if (A > B) {
  console.log(">");
}
if (A < B) {
  console.log("<");
}
if (A == B) {
  console.log("==");
}
-------------다른 풀이---------
  function solution(A, B) {
    // Write your code
    if (A > B) {
        console.log('>');
    }
    if (A < B) {
        console.log('<');
    }
    if (A === B) {
        console.log('==');
    }
  

런타임 에러 이유가.. ?

2-2(9498) 시험 성적

const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";

let input = fs.readFileSync(filePath).toString().split(" ");
// console.log(input); ["100"];
let score = +input;

if (100 >= score && score >= 90) {
  console.log("A");
} else if (89 >= score && score >= 80) {
  console.log("B");
} else if (79 >= score && score >= 70) {
  console.log("C");
} else if (69 >= score && score >= 60) {
  console.log("D");
} else if (59 >= score) {
  console.log("F");
}

------------다른 풀이---------
  solution(+input[0]);
function solution(num) {
    // Write your code
    if (90 <= num && num <= 100) {
        console.log('A');
    } else if (80 <= num && num <= 89) {
        console.log('B');
    } else if (70 <= num && num <= 79) {
        console.log('C');
    } else if (60 <= num && num <= 69) {
        console.log('D');
    } else {
        console.log('F');
    }
}  // 이게 깔끔하긴 하다. 

2-3(2753) 윤년

const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";

let input = fs.readFileSync(filePath).toString().split("\n");
// console.log(input);

let year = input[0];

function solution(value) {
  if (value % 4 == 0 && (value % 100 != 0 || value % 400 == 0)) {
    console.log("1");
  } else {
    console.log("0");
  }
}

solution(year);
//결과는 맞다고 나온다.
--------------다시 생각해보기-----
  value % 4 == 0 && (value % 100 != 0|| value % 400 == 0)) 
//100년과 200년을 묶을 것이 아님.

----------------------------------------
if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {
        console.log(1);
        return;
    }
    console.log(0);
}

2-4(14681) 사분면 고르기

const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";

let input = fs.readFileSync(filePath).toString().split("\n");
// console.log(input); ["12", "5", "9", "-13"];
inputA = input.splice(0, 2);
// console.log(inputA); ["12", "5"];
inputB = input;
// console.log(input); ["9", "-13"];
const [A, B] = [inputA[0], inputA[1]];
// console.log([A, B]); [12, 5]
---------위 세 코드를 이렇게 놔도 됨.---
input = input.map((item) => +item);
solution(input[0], input[1]);
------------------------------
function solution(A, B) {
  if (A > 0 && B > 0) {
    console.log(1);
  } else if (A < 0 && B > 0) {
    console.log(2);
  } else if (A < 0 && B < 0) {
    console.log(3);
  } else {
    console.log(4);
  }
}
solution(A, B); //결과값은 나온다.
-------------runtime err---------------
  /*
  2단계 문제 중 fs 모듈 에러로 못 푸는 문제가 있는데 이문제란다. 
  그래서 readline으로 세팅해야 함.
  */
  ------------------------------

  

2-5(2884) 알람 시계

const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";

let input = fs.readFileSync(filePath).toString().split("\n");
// console.log(input); ["10 10", "0 30", "23 40"];
input = input[0];
// input[0], [1], [2] 넣어서 실행해보면 출력값 맞게 나온다.
input = input.split(" ").map((item) => +item);
// console.log(input); [10, 10];
let [x, y] = [input[0], input[1]];

let alram = function (x, y) {
  if (x != 0 && y - 45 < 0) {
    console.log(x - 1, 60 + (y - 45));
  } else if (x == 0 && y - 45 < 0) {
    console.log(23, 60 + (y - 45));
  } else {
    console.log(x, y - 45);
  }
};
/*시계가 0일 때 분이 음수가 되면 23이 돼야하기 때문에
그런 것 잘 고려해서 코드 짜봤다.*/

alram(x, y);

----------다른 분의 훨씬 간단한 코드..-----
  function solution(H, M) {
    // Write your code
    M -= 45; // -1 M에 -45를 해주고
    if (M < 0) { //M이 음수가 나오면
        M += 60;  //거기 +60
        H -= 1; // -1 // 시간은 -1
    }
    if (H < 0) { // 만약 위 결과 시간이 음수면
        H = 23;  // 시간은 23으로 표시하겠다.
    }
    console.log(H, M);
}

나의 생각 : 머리를 안쓰면 몸이 고생한다.ㅋㅋ

2-6(2525) 오븐 시계

const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";

let input = fs.readFileSync(filePath).toString().split("\n");
// console.log(input); ["14 30", "20", "17 40", "80", "23 48", "25"];

let current = input[0].split(" ").map((item) => +item);
// console.log(current); [14, 30]

let currentHour = current[0];
let currentMin = current[1];
let cookTime = Number(input[1]);

// console.log(currentHour, currentMin, cookTime);  14 30 20

let endCookHour = parseInt((currentHour * 60 + currentMin + cookTime) / 60);

let endCookMin = parseInt((currentHour * 60 + currentMin + cookTime) % 60);

console.log(endCookHour >= 24 ? endCookHour - 24 : endCookHour, endCookMin);
/* 
위 코드는 아래 if문의 단축문이다.
if (endCookHour >= 24) {
  endCookHour -= 24;
  console.log(endCookHour, endCookMin);
} else {
  console.log(endCookHour, endCookMin);
}

*/

내 생각 : 생각을 유연하게.

2-7(2480) 주사위 세개

const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";

let input = fs.readFileSync(filePath).toString().split("\n");
// console.log(input); ["3 3 6", "2 2 2", "6 2 5"];

input = input[0].split(" ").map((item) => +item);
// console.log(input);[3, 3, 6];

/* 
1. x == y == z  ? 10000 + x * 1000
2. x == y || y == z || x == z  ? 1000 + 같은 눈 * 100
3. 모두 다른 눈 Math.max() * 100
*/

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

solution(input[0], input[1], input[2]);
profile
주먹구구식은 버리고 Why & How를 고민하며 프로그래밍 하는 개발자가 되자!

0개의 댓글