백준 2908번 Node.js 문제풀이

Cho Dragoo·2021년 5월 24일
0

JavaScript 백준 온라인 알고리즘 공부

백준 2908번 Node.js 문제풀이

상수
https://www.acmicpc.net/problem/2908



본인이 제출한 답안

const fs = require("fs");
const input = (
  process.platform === "linux"
    ? fs.readFileSync("/dev/stdin").toString()
    : `734 893`
)
  .trim()
  .split(" ");

let A = input[0].split("");
let B = input[1].split("");

let aTmp = A[0];
A[0] = A[2];
A[2] = aTmp;

let bTmp = B[0];
B[0] = B[2];
B[2] = bTmp;

let sumA = Number(A[0] + A[1] + A[2]);
let sumB = Number(B[0] + B[1] + B[2]);

if (sumA < sumB) {
  console.log(sumB);
} else if (sumA > sumB) {
  console.log(sumA);
}

풀이과정 소감

  • 잠깐 sort() 메서드를 쓸까 했는데 아... 숫자를 뒤집는것일뿐 최대.최소수 정렬이 아니라는걸 깨닳았다. 로직 자체는 무조건 3자리 숫자만 나오는 조건이라 반복문도 필요없이 양 끝 숫자값만 바꾸고 합친 문자열을 넘버 타입으로 변환후 간단한 조건문만 붙이면 끝인 무난한 문제였다.
const fs = require("fs");
const input = (
  process.platform === "linux"
    ? fs.readFileSync("/dev/stdin").toString()
    : `734 893`
)
  .trim()
  .split(" ");

let A = input[0].split("");
let B = input[1].split("");

let sumA = Number(A.reverse().reduce((a, b) => a + b));
let sumB = Number(B.reverse().reduce((a, b) => a + b));

console.log(Math.max(sumA, sumB));
  • reverse(), reduce(), Math.max를 활용하면 좀 더 간결하고 가독성있는 코드가 된다.
    reduce((a, b) => a + b)가 아닌 숫자나 문자를 붙이고 따옴표를 감싸주는join('')을 써도 통용된다.
profile
어떤 문제든 파악 할 수 있으며 해결책을 찾을 수 있는 개발능력을 꿈꾸고 있습니다.

0개의 댓글