반응형
내가 푼 문제 📖
내가 작성한 코드 💻
let input = require("fs")
.readFileSync(process.platform === "linux" ? "/dev/stdin" : __dirname+"/input.txt")
.toString()
.trim()
.split('')
let results = ''
while(input.length){
let ocl = input.splice(-3).join('')
if(ocl.length !== 3) ocl = ocl.padStart(3, '0')
results += parseInt(ocl, 2).toString(8)
}
console.log(results.split('').reverse().join(''))
어려웠던 점 ❓
1. 기존 변환 방법
// input == '11001100'
parseInt(input, 2).toString(8)
// results '314'
2진수 -> 8진수로 변환 방법으로 위 방식을 많이 사용했었는데 입력 조건에 2진수 길이가 1,000,000을 넘지 않는다. 가 있었다. 그래서 위 방식으로 변환하게 되면 범위가 너무 커지기 때문에 방법을 생각해 내는데 어려움이 있었다.
깨달은 점 ❕
1. 끊어서 계산하기
let ocl = input.splice(-3).join('')
results += parseInt(ocl, 2).toString(8)
뒤에서부터 3자리씩 끊어서 8진수로 변환을 진행했고,
if(ocl.length !== 3) ocl = ocl.padStart(3, '0')
3자리가 아닐 경우 부족한 개수만큼 앞에 0을 붙여주는 방식으로 문제를 풀었다.
회고 🧐
며칠을 쉬고 문제를 풀었더니 뇌가 살짝 굳어버린 느낌이다.
다시 불을 질러보자~!!🔥🔥
출처 🏷️
반응형
'공부 > TIL' 카테고리의 다른 글
[TIL] 24.07.16 코딩 컨벤션이란? (0) | 2024.07.16 |
---|---|
[TIL] 24.07.15 (0) | 2024.07.15 |
[TIL] 24.07.09 백준 10844번 js (0) | 2024.07.09 |
[TIL] 24.07.08 (0) | 2024.07.08 |
[TIL] 24.06.12 백준 1676번 js (2) | 2024.06.12 |
[TIL] 24.06.11 백준 6588번 js (0) | 2024.06.11 |
[TIL] 24.06.10 React 트랙을 신청한 이유 (0) | 2024.06.10 |
[TIL] 24.06.03 백준 10820번 JS (0) | 2024.06.03 |