프로그래머스

level1_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


접근방법

1) 접근 사고

처음에 넣은것을 뒤집어야 하므로 처음부터 뒤집은 상태를 넣어줄려고 큐를 사용해서 구현해 봤습니다.

 

2) 시간 복잡도

O(n)

 

3) 실수

없습니다.

 

4) 배운점

없는거 같네요

 

5) PS

 


정답 코드

#include<bits/stdc++.h>

using namespace std;

int solution(int n) {
    int answer = 0;
    
    queue<int> q;
    while(n != 0){
        q.push(n % 3);
        n /= 3;
    }
    
    int qSize = q.size();
    int idx = q.size() - 1;
    for(int i = 0; i < qSize; i++, idx--){
        answer += pow(3, idx) * q.front();
        q.pop();
    }
   // cout << answer <<"\n";
    return answer;
}
반응형

'프로그래머스' 카테고리의 다른 글

level2_방금그곡  (0) 2022.03.07
level1_두 개 뽑아서 더하기  (0) 2021.10.21
level1_내적  (0) 2021.10.21
2019 KAKAO BLIND RECRUITMENT 풀이 모음  (0) 2021.10.17
2020 KAKAO BLIND RECRUITMENT 풀이 모음  (0) 2021.10.13