본문 바로가기
Algorithm/Baekjoon

백준 2908번

by minhi 2024. 11. 15.

백준 2908번을 풀어보았다.

let [A, B] = require('fs').readFileSync('/dev/stdin').toString().split(" ")

let A_reversed = 0, B_reversed = 0

for (let i = 2; i >= 0; i--) {
  A_reversed += A[i] * (10 ** i)
  B_reversed += B[i] * (10 ** i)
}

console.log(A_reversed > B_reversed ? A_reversed : B_reversed)

 

이 문제는 크게 역순으로 만드는 단계와 출력하는 단계로 구분할 수 있는데, 각 단계별 풀이를 정리해보았다.

 

역순 만들기 ① 반복문

 

위와 같이 반복문을 사용해 일의 자리, 십의 자리, 백의 자리를 A_reversed, B_reversed로 옮겨준다.

 

역순 만들기 ② reverse 메소드

A_reversed = Number(A.split("").reverse().join(''))
B_reversed = Number(B.split("").reverse().join(''))

 

reverse 메소드를 사용하여 역순으로 만들 수도 있다.

 

먼저 reverse 메소드는 Array 객체의 메소드로, A, B를 split 메소드를 사용해 배열로 변환해준다.

 

이후 reverse 메소드를 사용해 배열 내 요소들의 순서를 역순으로 만들고

 

join 메소드를 사용해 배열을 다시 문자열로 변환해준다.

 

참고) 백준 10811번

 

역순 만들기 ③ 인덱스로 문자열 내 문자 접근하기

A_reversed = Number(A[2] + A[1] + A[0])
B_reversed = Number(B[2] + B[1] + B[0])

 

배열과 유사하게 문자열은 인덱스를 사용해 문자열 내 각 문자에 접근할 수 있다.

 

인덱스를 사용해 각 자리수를 얻고, 일의 자리와 백의 자리의 순서를 바꿔 concatenate한다.

 

참고) 반복문 ① 배열

참고) 백준 11720번

 

출력하기

console.log(Math.max(A_reversed, B_reversed))

 

Math 객체의 max 메소드를 사용하여 출력할 수도 있다.

 

💫 이 문제를 통해 배운 것

순서를 바꾸는 유형은 reverse 메소드를 떠올리자!

'Algorithm > Baekjoon' 카테고리의 다른 글

백준 3003번  (0) 2024.11.15
백준 5622번  (0) 2024.11.15
백준 25083번  (0) 2024.11.14
백준 1152번  (0) 2024.11.08
백준 2675번  (0) 2024.11.08