C#

백준 C# 11005 문제 풀이

psb08 2024. 10. 2. 21:48
728x90

문제 링크 : https://www.acmicpc.net/problem/11005

목차

1 설명

 

2 내 코드

 

3 문제 풀이 해석 내용

 

4 실행 결과

 

설명

백준 브론즈 1 문제 입니다.

 

 

내 코드

 string[] input = Console.ReadLine().Split();
 int n = int.Parse(input[0]);
 int b = int.Parse(input[1]);
 ArrayList arr = new ArrayList();
 while (n > 0)
 {

     int temp = n % b;
     n = n / b;
     if (temp >= 10)
     {
         temp += 55;
         arr.Add((char)temp);
     }
     else
     {
         arr.Add(temp);
     }
 }
 arr.Reverse();
 foreach (var a in arr)
 { Console.Write(a); }

문제 풀이 해석 내용

입력 처리

string[] input = Console.ReadLine().Split();
int n = int.Parse(input[0]); // 변환할 정수 n
int b = int.Parse(input[1]); // 변환할 진법 b

사용자가 입력한 값을 공백을 기준으로 나누어 n과 b에 각각 저장합니다.

 

 

리스트 초기화

ArrayList arr = new ArrayList();

변환된 숫자를 저장할 ArrayList를 초기화합니다.

 

 

진법 변환

while (n > 0)
{
    int temp = n % b; // n을 b로 나눈 나머지를 구함
    n = n / b; // n을 b로 나눈 몫으로 업데이트
    if (temp >= 10)
    {
        temp += 55; // temp가 10 이상일 경우, ASCII 코드 변환을 위해 55를 더함
        arr.Add((char)temp); // 문자로 변환하여 리스트에 추가
    }
    else
    {
        arr.Add(temp); // 숫자 그대로 리스트에 추가
    }
}

while을 통해 n이 0보다 큰 동안 반복합니다. n을 b로 나누어 나머지를 구하고 몫으로 업데이트 합니다.

나머지가 10 이상일 경우, 해당 숫자를 대문자 알파벳으로 변환하여 리스트에 추가합니다.

나머지가 10 미만일 경우, 숫자를 그대로 리스트에 추가합니다.

 

 

리스트 반전

arr.Reverse();

리스트에 저장된 값들을 반전시킵니다.

위의 과정에서 가장 낮은 자리수부터 저장되기 때문입니다.

 

 

출력

foreach (var a in arr)
{ Console.Write(a); }

리스트에 저장된 값을 차례대로 출력합니다.

 

 

실행 결과

실행 결과

 

728x90

'C#' 카테고리의 다른 글

백준 C# 2292 문제 풀이  (0) 2024.10.06
백준 C# 2903 문제 풀이  (0) 2024.10.05
백준 C# 2720 문제 풀이  (0) 2024.09.30
백준 C# 2745 문제 풀이  (0) 2024.09.26
백준 C# 1929 문제 풀이  (0) 2024.09.26