Game Development, 게임개발/개발

2진법 규칙에 맞춰서 출력하기 - C#

게임이 더 좋아 2021. 5. 29. 02:06
반응형
728x170

 

내가 돌려서 풀었을지도..

다른 풀이가 있을 것 같긴하더라.

그래도 나랑 시간복잡도 차이는 크지 않을 것 같아 생략.

 

https://www.codingame.com/ide/puzzle/chuck-norris

 

위의 규칙을 바탕으로 구현한다.


 

#풀이

using System;
using System.Linq;
using System.IO;
using System.Text;
using System.Collections;
using System.Collections.Generic;

/**
 * Auto-generated code below aims at helping you parse
 * the standard input according to the problem statement.
 **/
class Solution
{
    static void Main(string[] args)
    {
        string MESSAGE = Console.ReadLine();

        string s = "";

        foreach(char c in MESSAGE){
            string binary = Convert.ToString((int)c,2);
            binary = binary.PadLeft(7,'0');
            s += binary;
        }
        string ans = "";
        int cnt1 = 0;
        int cnt2 = 0;

        foreach(char c in s){
            if(c == '1'){
                if(cnt2 != 0){
                    while(cnt2 != 0){
                        ans += '0';
                        cnt2--;
                    }
                    ans += " ";
                }
                if(cnt1 == 0){
                    ans += "0 ";
                }
                cnt1++; 
            }
            if(c == '0'){
                if(cnt1 != 0){
                    while(cnt1 != 0){
                        ans += '0';
                        cnt1--;
                    }
                    ans += " ";
                }
                if(cnt2 == 0){
                    ans += "00 ";
                }
                cnt2++;
            }
        }
        if(cnt1 != 0){
                    while(cnt1 != 0){
                        ans += '0';
                        cnt1--;
                    }
        }
        if(cnt2 != 0){
                    while(cnt2 != 0){
                        ans += '0';
                        cnt2--;
                    }
         }




        Console.WriteLine(ans);
    }
}

 

 

그니까 입력받아서. 0이 입력된다면 0 입력 전까지 1이 몇개나 입력되었나 생각해보고

1이 입력된다면 1 입력전까지 0이 몇개나 입력되었나 생각해보고

끝난 뒤에 나머지 cnt를 이용해서 마무리를 했다.

 

입력 전까지 세는 cnt로 세는게 제일 깔끔할 거라 생각하고 이렇게 풀었다.

728x90
반응형
그리드형