Javascript

[javascript] μ§„μˆ˜ λ³€ν™˜ / String, Number λ³€ν™˜ (String / toString / Number / parseInt)

ddon 2021. 6. 9. 21:52
숫자λ₯Ό 문자둜, 문자λ₯Ό 숫자둜 λ³€ν™˜

숫자 -> 문자둜 λ³€ν™˜ : String(num), num.toString()
문자 -> 숫자둜 λ³€ν™˜ : Number(str), parseInt(str)

const num = 10;
const str = '10';

// number -> string
String(num);	// '10'
num.toString(); // '10'

// typeof() : λ°μ΄ν„°νƒ€μž…μ„ 확인
typeof(num.toString()); // 'string'

// string -> number
Number(str); // 10
parseInt(str); // 10 (μ •μˆ˜ν˜• 숫자)
typeof(parseInt(str)); // 'number'

 

toString(), parseInt() μ§„μˆ˜ λ³€ν™˜

10μ§„μˆ˜μ—μ„œ nμ§„μˆ˜λ‘œ λ³€ν™˜ : num.toString(n)
nμ§„μˆ˜μ—μ„œ 10μ§„μˆ˜λ‘œ λ³€ν™˜ : parseInt(num, n)
nμ§„μˆ˜μ—μ„œ mμ§„μˆ˜λ‘œ λ³€ν™˜ : parseInt(num, n).toString(m)

const num10 = 10;

// 10μ§„μˆ˜ -> 2μ§„μˆ˜
const num2 = num10.toString(2); // '1010'

// 10μ§„μˆ˜ -> 8μ§„μˆ˜
const num8 = num10.toString(8); // '12'

// 10μ§„μˆ˜ -> 16μ§„μˆ˜
const num16 = num10.toString(16);// 'a'

// 2μ§„μˆ˜ -> 10μ§„μˆ˜
parseInt(num2, 2); // 10

// 2μ§„μˆ˜ -> 8μ§„μˆ˜ (2μ§„μˆ˜λ₯Ό 10μ§„μˆ˜λ‘œ λ³€ν™˜ ν›„, 8μ§„μˆ˜λ‘œ λ³€ν™˜)
parseInt(num2, 2).toString(8) // '12'

// 8μ§„μˆ˜ -> 2μ§„μˆ˜ (8μ§„μˆ˜λ₯Ό 10μ§„μˆ˜λ‘œ λ³€ν™˜ ν›„, 2μ§„μˆ˜λ‘œ λ³€ν™˜)
parseInt(num8, 8).toString(2) // '1010'

 

toString() 은 문자둜 ν˜•λ³€ν™˜μ„ ν•΄μ£ΌλŠ” μ—­ν• λ‘œλ§Œ μ•Œκ³ μžˆμ—ˆλŠ”λ°, ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€μ—μ„œ ν•œ 문제λ₯Ό ν’€λ©΄μ„œ μ§„μˆ˜λ³€ν™˜λ„ ν•΄μ£ΌλŠ”κ±Έ μ•Œκ²Œλ˜μ—ˆλ‹€.


ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - μ›”κ°„ μ½”λ“œ μ±Œλ¦°μ§€ μ‹œμ¦Œ1
3진법 뒀집기

https://programmers.co.kr/learn/courses/30/lessons/68935

 

μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - 3진법 뒀집기

μžμ—°μˆ˜ n이 λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§‘λ‹ˆλ‹€. n을 3진법 μƒμ—μ„œ μ•žλ’€λ‘œ 뒀집은 ν›„, 이λ₯Ό λ‹€μ‹œ 10μ§„λ²•μœΌλ‘œ ν‘œν˜„ν•œ 수λ₯Ό return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”. μ œν•œμ‚¬ν•­ n은 1 이상 100,000,000 μ΄ν•˜μΈ μžμ—°μˆ˜

programmers.co.kr


ν•΄μ„€

 

n = 45 μΌ κ²½μš°, 
1. 10μ§„μˆ˜μΈ n을 3μ§„μˆ˜λ‘œ λ°”κΎΌ λ’€ : n.toString(3) // 1200 
2. μ•žλ’€λ‘œ λ’€μ§‘은 ν›„ : n.toString(3).split("").reverse().join("") // 0021 
=> n.toString(3).split("") μ˜ κ²°κ³Ό : : [ '1', '2', '0', '0' ] 

     (μ—¬κΈ°μ„œ split("")은 n.toString(3)을 λ°°μ—΄λ‘œ λ§Œλ“€μ–΄μ£ΌλŠ” 것) 
=> n.toString(3).split("").reverse() μ˜ κ²°κ³Ό : [ '0', '0', '2', '1' ] 
3. λ‹€μ‹œ 10μ§„λ²•μœΌλ‘œ ν‘œν˜„ : parseInt(n.toString(3).split("").reverse().join(""), 3) // 7 

function solution(n) {
    var answer = 0;
    // 10μ§„μˆ˜ -> 3μ§„μˆ˜ -> 뒀집기
    answer = n.toString(3).split("").reverse().join(""); 
    answer = parseInt(answer, 3); // 10μ§„μˆ˜λ‘œ λ³€ν™˜
    return answer; 
}