C# 3진법 뒤집기 [프로그래머스 Level 1}
코드 바로보기
문제 설명
자연수 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 해야 합니다.
코드
using System;
using static System.Math;
using System.Collections.Generic;
public class Solution {
public int solution(int n) {
int answer = 0;
List<int> list = new List<int>();
//자연수 n이 0이 될 때 까지 나눈 나머지를 list에 저장
while(true)
{
if(n==0) break;
int d = n%3;
list.Add(d);
n = n/3;
}
//앞뒤 뒤집기 list.Reverse()
list.Reverse();
//뒤집은 list의 나머지 값 * 3의 거듭 제곱을 곱해 answer에 더하기
for(int i = 0; i<list.Count; i++)
{
answer += (int)(list[i] * Math.Pow(3,i));
}
return answer;
}
}
'개발공간' 카테고리의 다른 글
C# 게임 맵 최단거리 [프로그래머스 Level 2] (0) | 2021.08.18 |
---|---|
C# 예상 대진표 [프로그래머스 Level 2] (0) | 2021.08.14 |
C# 2016년 [프로그래머스 Level 1] (0) | 2021.08.13 |
C# 체육복 [프로그래머스 Level 1] (0) | 2021.08.13 |
C# 나누어 떨어지는 숫자 배열 [프로그래머스 Level 1] (0) | 2021.08.13 |
댓글