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

백준 C# - 1212 +)풀이

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

비슷한 문제인 2진수를 8진수로 바꾸는 문제를 먼저 풀고 오는 것을 추천한다.

백준 C# - 1373

 

백준 C# - 1373 +) 풀이

1. 첫번째 방법 2진수를 8진수로 바꾸는 문제여서 간단하게 아래와 같이 풀었다. 이렇게 풀었더니 overflow에러가 떴다.. string num = Console.ReadLine(); string result = Convert.ToString(Convert.ToInt32(num, 2), 8); Conso

code-piggy.tistory.com


풀이

위의 문제에서는 3자리수를 8진수로 바꾸었는데 이번에는 반대로 1자리수를 3자리 수로 바꾸면 된다.

01 입력받은 8진수를 2진수로 바꾸기

 sb.Append(Convert.ToString(value, 2));

02 PadLeft을 이요해서 3자리수 2진수로 변경하기

sb.Append(Convert.ToString(value, 2).PadLeft(3, '0'));

03 첫번째 문자인 경우 3자리수로 안바꾸기

if (first)
{
    sb.Append(Convert.ToString(value, 2));
    first = false;
}
else
{
    sb.Append(Convert.ToString(value, 2).PadLeft(3, '0'));
}

코드 전문

using System;
using System.Text;

namespace baek2
{

    class Program
    {
        static void Main(string[] args)
        {
            string num = Console.ReadLine();
            StringBuilder sb = new StringBuilder();
            bool first = true;

            foreach(char c in num)
            {
                int value = int.Parse(c.ToString());
                if (first)
                {
                    sb.Append(Convert.ToString(value, 2));
                    first = false;
                }
                else
                {
                    sb.Append(Convert.ToString(value, 2).PadLeft(3, '0'));
                }
            }
            Console.Write(sb.ToString());
        }
    }
}
반응형

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

백준 C# - 11005 +)풀이  (0) 2023.11.22
백준 C# - 2089 +) 풀이  (0) 2023.11.22
백준 C# - 1373 +) 풀이  (0) 2023.11.21
백준 C# - 17087 +) 풀이  (1) 2023.11.20
백준 C# - 9613 +) 풀이 (유클리드 호제법)  (0) 2023.11.18

댓글