본문 바로가기
내일배움 과제/기타 과제

알고리즘 40번 - 추가공부

by GREEN나무 2024. 11. 8.
728x90

JS

문제

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


계획

1. n을 3진법으로 수정

2.앞뒤로 뒤집어???
3. 10진법으로 바꾸기
4. 반환


참고, 풀이

   다음부턴 푸는 중간중간에 기록해야겠다


/**문제 설명
자연수 n이 매개변수로 주어집니다. 
n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 
다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.

제한사항
n은 1 이상 100,000,000 이하인 자연수입니다. */

/**
 * n을 3진법으로 수정
 *      console.log(decimal.toString(3));
 *      console.log(변수.toString(2진법은 2, 3진법은 3...));
 * 
 * 앞뒤로 뒤집어???
 *      3진법 숫자를 배열로 만들기
 *      const str = String(num);// 숫자 -> 문자열 String()
        const newArr = Array.from(str); // 문자열 -> 배열 Array.from()
 * 
 *     배열 뒤집기
 *     const reversed = array1.reverse();
 *     문자를 3진법으로
 *      parseInt() 함수는 문자열 인자를 파싱하여 특정 진수(수의 진법 체계에서 기준이 되는 값)의 정수를 반환합니다.
 *      parseInt(string);
        parseInt(string, radix);

 *      console.log(parseInt('0xFF', 16)); // 255 (upper-case hexadecimal with "0x" prefix)
 * 10진법으로 바꾸기
 * 
 *     console.log(parseInt(number,3));
 *     console.log(parseInt(변수,진법수));
 * 반환
 * 
 */
/*n진수 → n진수
parseInt(string, n).toString(n)*/

function solution(n) {
    var answer = 0;
    //n.toString(3); // 10 -> 3
    // reverse(n); // 앞뒤 반전시키고  -> 숫자라 문자로 풀고 뒤집고 묶기
    //let strN = n.toString()
    //const str = String(num);// 숫자 -> 문자열 String()
    
    let strN = n.toString(3); // 10진수 -> 3진수 문자열
    
    let arrN = Array.from(strN); // 문자열 -> 배열 Array.from()
    let reversed = arrN.reverse(); // 배열 뒤집기
    arrN = reversed.join(""); // 배열-> 문자열
    //Number(arrN)// 문자열 -> 숫자(3진수)
        
    answer = Number.parseInt(arrN, 3);// 문자열 -> 숫자 (3진수 문자열을 10진수로 변환)
    return answer;
}

console.log(solution(1005))

코드 간략화하기

function solution(n) {
    // 1. 10진수를 3진법 문자열로 변환
    let strN = n.toString(3);

    // 2. 3진법 문자열을 뒤집고 다시 문자열로 결합
    let reversedStr = strN.split("").reverse().join("");

    // 3. 뒤집은 3진법 문자열을 10진수로 변환하여 반환
    return parseInt(reversedStr, 3);
}

console.log(solution(1005));

 


출처 

진법 변환 : https://ryuhojin.tistory.com/20

숫자 -> 문자 : https://www.freecodecamp.org/korean/news/javascript-number-to-string/

숫자 -> 배열: https://hianna.tistory.com/707

문자열 합치기 : https://inpa.tistory.com/entry/JS-%F0%9F%9A%80-%EB%B0%B0%EC%97%B4%EC%9D%84-%EB%AC%B8%EC%9E%90%EC%97%B4%EB%A1%9C-%EB%B3%80%ED%99%98%ED%95%98%EB%8A%94-3%EA%B0%80%EC%A7%80-%EB%B0%A9%EB%B2%95#join_%EC%82%AC%EC%9A%A9

 

 

 


 

◆ C

더보기
더보기

◆ C

계획


참고, 풀이


//



코드 간략화하기

 


출처 

 

 

 

 

 

 

◆ C#

더보기
더보기

◆ C#

계획


참고, 풀이


//



코드 간략화하기

 


출처 

 

 

 

◆ C++

더보기
더보기

◆ C++

계획


참고, 풀이


//



코드 간략화하기

 


출처 

 

 

 

 

 

 

 

'내일배움 과제 > 기타 과제' 카테고리의 다른 글

알고리즘 1번  (0) 2024.11.11
알고리즘 2번 - 추가공부  (0) 2024.11.11
알고리즘 39번 - 추가공부  (0) 2024.11.07
SQL 퀘스트 1~5  (0) 2024.11.03
모달 만들기  (0) 2024.10.29