Noah_Developer
Developer Noah
Noah_Developer
전체 방문자
오늘
어제
  • 전체보기 (87)
    • Programmers (33)
      • Level1 (33)
    • FRONT-END (3)
      • React (2)
      • HTML (0)
      • CSS (0)
      • JavaScrpit (1)
    • BACK-END (23)
      • JAVA (14)
      • C (0)
      • Spring (5)
    • DATABASE (11)
      • MySQL (3)
      • Oracle (0)
    • IDE (2)
      • IntelliJ (2)
      • Eclipse (0)
      • VSCode (0)
    • Android (1)
    • 용어 (2)
      • 금융 (2)
    • Developer Diary (5)
      • Web (1)
    • 자격증 (1)
    • Operating System (3)
      • Linux (2)
    • Info (2)

블로그 메뉴

  • 홈
  • 방명록
  • 포트폴리오
  • 깃허브

공지사항

  • 🙏 방문 감사합니다.

인기 글

태그

  • 프로그래머스 문제풀이
  • 알고리즘 문제
  • 카카오공채
  • 초보자 알고리즘
  • programmers
  • 자바 알고리즘 연습문제
  • 알고리즘 풀이
  • 코딩테스트 준비
  • 크레인 인형뽑기
  • 프로그래머스 연습문제
  • 코딩테스트
  • MySQL
  • 코딩테스트 문제
  • 크레인 인형뽑기 풀이
  • 카카오 블라인드 테스트
  • level1
  • 알고리즘 쉬운문제
  • 코딩테스트 문제 풀이
  • 알고리즘 연습문제
  • 프로그래머스 코딩연습
  • 알고리즘 블로그
  • 개발일기
  • String StringBuilder 차이
  • 알고리즘 예제
  • 크레인 인형뽑기 정답
  • 프로그래머스 레벨1
  • programmers level 1
  • 자바 쉬운 알고리즘
  • 프로그래머스
  • 카카오 블라인드

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
Noah_Developer

Developer Noah

[Programmers Level 1] 3진법 뒤집기 정답 및 문제 풀이
Programmers/Level1

[Programmers Level 1] 3진법 뒤집기 정답 및 문제 풀이

2021. 5. 30. 11:41
728x90

3진법 뒤집기 원문 보기

 

코딩테스트 연습 - 3진법 뒤집기

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

programmers.co.kr

👀 문제 설명

 

자연수 n이 매개변수로 주어집니다.

n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.

 

🚥 제한사항

 

n은 1 이상 100,000,000 이하인 자연수입니다.

 

📌 입출력 예

 

n result
45 7
125 229

입출력 예 설명

 

입출력 예 #1

답을 도출하는 과정은 다음과 같습니다.
n (10진법) n (3진법) 앞뒤 반전(3진법) 10진법으로 표현
45 1200 0021 7
따라서 7을 return 해야 합니다.

입출력 예 #2

답을 도출하는 과정은 다음과 같습니다.
n (10진법) n (3진법) 앞뒤 반전(3진법) 10진법으로 표현
125 11122 22111 229
따라서 229를 return 해야 합니다.

 


 

🤨 고민

문제의 핵심인 3진법 계산 후 앞뒤 반전 처리를 어떻게 할 것인가? 

 

💻 코딩

import java.util.Stack;

class Solution {
    public int solution(int n) {
        int answer = 0;
        
        // Stack (FILO) 구조체 선언
        Stack<Integer> stack = new Stack<>();
        // 입력받은 n이 0보다 클 경우 반복 수행하는 while
        while(n > 0){
        	// stack구조체에 n을 3으로 나눈 값을 넣는다
            stack.push(n % 3);
            // 3으로 나눈 몫을 n으로 세팅한다.
            n = n / 3;
        }
        
        // 3진법 -> 10진법 계산시 사용할 제곱승 변수 선언
        int squared = 0;
        // stack 구조체가 비어있지 않은 경우 루프도는 while
        while (!stack.empty()) {
            // 답안지세팅부
            answer += stack.pop() * Math.pow(3, squared++);
        }
        
        
        return answer;
    }
}

 

테스트 결과.png

 

📝 채점

 

 

⏱ 소요시간 및 후기

소요시간 약 20분.

스텍을 사용하지 않고도 풀 수 있지만 뒤집는 과정을 일일히 코딩을 하느냐가 관건 이였던 문제 이였던 것 같다.

풀기전에는 어렵지만 풀고나면 쉬운 문제였던것 같다.

728x90
저작자표시 (새창열림)

'Programmers > Level1' 카테고리의 다른 글

[Programmers Level 1] 로또의 최고 순위와 최저 순위 정답 및 문제 풀이  (0) 2021.06.01
[Programmers Level 1] 하샤드 수 정답 및 문제 풀이  (0) 2021.05.31
[Programmers Level 1] [1차] 다트게임 정답 및 문제 풀이(카카오 블라인드 코딩 테스트)  (0) 2021.05.26
[Programmers Level 1] 나누어 떨어지는 숫자 배열 정답 및 문제풀이  (0) 2021.05.24
[Programmers Level 1] 약수의 개수와 덧셈 정답 및 문제 풀이  (0) 2021.05.22
    'Programmers/Level1' 카테고리의 다른 글
    • [Programmers Level 1] 로또의 최고 순위와 최저 순위 정답 및 문제 풀이
    • [Programmers Level 1] 하샤드 수 정답 및 문제 풀이
    • [Programmers Level 1] [1차] 다트게임 정답 및 문제 풀이(카카오 블라인드 코딩 테스트)
    • [Programmers Level 1] 나누어 떨어지는 숫자 배열 정답 및 문제풀이
    Noah_Developer
    Noah_Developer
    개발 기록 목적을 가진 블로그입니다.

    티스토리툴바