본문 바로가기
코딩테스트 준비/백준 C#

백준 C# - 11576 +)풀이

by 코딩하는 돼징 2023. 11. 27.
반응형

문제를 푸는 시간보다 문제를 이해하는 시간이 더 오래 걸린 문제였다.

 

예제를 이용해서 문제를 이해해보자

17 8
2
2 16

01 첫 줄

17은 진법 A, 8은 진법 B이다.

02 두번째 줄

입력에 나오는 설명은 A진법으로 나타낸 숫자의 자리수의 개수 m이라고 하는데 무슨 말인지 이해가 안갔다. 그냥 간단하게 변환해야할 숫자의 개수이다.

03 세번째 줄

두번째 줄에서 변화해야할 수의 갯수를 받았으니까 해당 하는 수들이다.


풀이

01 A진법을 10진수로 변환

string[] token = Console.ReadLine().Split();
int a = int.Parse(token[0]);
int b = int.Parse(token[1]);
int m = int.Parse(Console.ReadLine());
int n = m - 1;
int answer = 0;
string[] token2 = Console.ReadLine().Split();
for (int i = 0; i<m; i++)
{
    int digit = int.Parse(token2[i]);
    answer += (int)Math.Pow(a, n) * digit;
    n--;
}

02 10진수를 B진법으로 변환

StringBuilder sb = new StringBuilder();
while(answer != 0)
{
    int mod = answer % b;
    sb.Insert(0, mod);
    sb.Insert(mod.ToString().Length, ' ');
    answer /= b;
}
Console.Write(sb.ToString());

코드 전문

using System;
using System.Text;
namespace baek2
{

    class Program
    {
        static void Main(string[] args)
        {
            string[] token = Console.ReadLine().Split();
            int a = int.Parse(token[0]);
            int b = int.Parse(token[1]);
            int m = int.Parse(Console.ReadLine());
            int n = m - 1;
            int answer = 0;
            string[] token2 = Console.ReadLine().Split();
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i<m; i++)
            {
                int digit = int.Parse(token2[i]);
                answer += (int)Math.Pow(a, n) * digit;
                n--;
            }

            while(answer != 0)
            {
                int mod = answer % b;
                sb.Insert(0, mod);
                sb.Insert(mod.ToString().Length, ' ');
                answer /= b;
            }
            Console.Write(sb.ToString());
        }
    }
}

 

 

 

 

반응형

'코딩테스트 준비 > 백준 C#' 카테고리의 다른 글

백준 C# - 1463 +) 풀이  (0) 2023.11.27
백준 C# - 11653  (0) 2023.11.27
백준 C# - 17103 +) 풀이  (2) 2023.11.26
백준 C# - 2745 +)풀이  (0) 2023.11.23
백준 C# - 11005 +)풀이  (0) 2023.11.22

댓글