본문 바로가기
👩‍💻 Programming/Coding Test 문제 풀이

[Baekjoon] 1212 8진수 2진수(자바스크립트/NodeJs)

by codingBear 2023. 1. 9.
728x90
반응형

이번 문제는 아래 링크에서 풀어볼 수 있습니다.

 

1212번: 8진수 2진수

첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다.

www.acmicpc.net


문제

8진수가 주어졌을 때, 2진수로 변환하는 프로그램을 작성하시오.

입력

첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다.

출력

첫째 줄에 주어진 수를 2진수로 변환하여 출력한다. 수가 0인 경우를 제외하고는 반드시 1로 시작해야 한다.

예제 입력 1

314

예제 출력 1

11001100

정답 코드

답안 1

답안 2

답안 3


문제 풀이

 주어진 숫자를 for 반복문으로 순회하면서 8진수를 2진수로 변환하면 되는 문제이다. 관건은 8진수에서 2진수로 변환한 수의 길이가 3이 될 때까지 0을 채워넣는 것과 결괏값의 맨 처음 값으로 항상 1이 나오도록 불필요한 0을 제거하는 것이다.

 문자열의 앞에다 특정 문자를 채워넣을 때 padStart 메서드를 사용할 수 있다. padStart 메서드는 첫 번째 인수로 문자열의 목표 길이를 받고 두 번째 인수로는 채워넣을 값을 받는다. 반대로는 padEnd 메서드가 있다.

 8진수와 2진수 간의 진법 변환 문제라기보단 parseInt, toString, padStart, 반복문 등을 활용해 문자열을 다루는 문제에 가깝다고 본다.


함께 보기

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/padStart

 

String.prototype.padStart() - JavaScript | MDN

padStart() 메서드는 현재 문자열의 시작을 다른 문자열로 채워, 주어진 길이를 만족하는 새로운 문자열을 반환합니다. 채워넣기는 대상 문자열의 시작(좌측)부터 적용됩니다.

developer.mozilla.org

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd

 

String.prototype.padEnd() - JavaScript | MDN

padEnd() 메서드는 현재 문자열에 다른 문자열을 채워, 주어진 길이를 만족하는 새로운 문자열을 반환합니다. 채워넣기는 대상 문자열의 끝(우측)부터 적용됩니다.

developer.mozilla.org

https://velog.io/@rkio/%EB%B0%B1%EC%A4%80-Javascript-1212

 

[백준 | Javascript] 1212

알고리즘 기초 1/2. 301 - 수학 1(연습)1212번. 8진수 2진수1212번 문제 링크매서드를 이용하는 방법이 훨씬 깔끔해보인다.그런데 메모리는 매서드를 사용한 쪽이 약간 더 크게 잡아먹었다.이 방법은

velog.io

https://leylaoriduck.tistory.com/510

 

[백준 1212번 8진수 2진수 - node.js] [알고리즘 기초 1/2]

https://www.acmicpc.net/problem/1212 1212번: 8진수 2진수 첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다. www.acmicpc.net 문제 8진수가 주어졌을 때, 2진수로 변환하는 프로그램을 작

leylaoriduck.tistory.com

https://kscodebase.tistory.com/393

 

[node.js] 8진수 2진수 ( 백준 1212번 )

const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.on("line", (line) => { main(line); process.exit(); }); /** * * @param {string} line */ const main = (line) => { const numbers =

kscodebase.tistory.com

 

728x90
반응형

댓글