개발/코딩테스트

[백준 | JavaScript] 2908 상수

prpn97 2023. 5. 21. 19:48

문제 설명

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.

상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.

두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.

입출력

input result
734 893 437
221 231 132

문제 풀이

const fs = require("fs");
let input = fs.readFileSync("./input.txt").toString().trim().split(' ')
input = input.map((a)=>{
    let reversed = a.split('').reverse().join('')
    return reversed
               })
    input.map(Number)
console.log(input[0]>input[1]?input[0]:input[1])

입력은 공백을 기준으로 나누고 있어 같은 기준의 배열로 만들어주었다. 

그리고 map 함수를 통해 input의 요소인 734, 893을 한글자씩 나누면서 reverse했다. 

현재 input 은 [ [ '4', '3', '7' ], [ '3', '9', '8' ] ] 이렇게 출력된다.

split해서 요소가 각 글자로 나눈 배열이 되었고, 이를 뒤집은 것이다. 

 

여기서 437, 398의 크기를 비교해야 하므로, 각 요소를 join하여 합쳐준다. 

문자열인 상태에서 뒤집어주었기 때문에 number로 바꾸고 비교하여 큰 값을 출력한다.

 

코멘트

map함수에 아주 조금은 익숙해진 것 같다. 

728x90