본문 바로가기
[ 다먹살 ]/- Coding

[백준] 1373 2진수 8진수

by 엉망으로살기 2021. 10. 29.
반응형

https://www.acmicpc.net/problem/1373

 

1373번: 2진수 8진수

첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다.

www.acmicpc.net

 

예전에 논리회로 과목을 수강하면서 진수 변환에 대한 내용을 들었었다. 특히 2진수와 2ⁿ진수는 각 숫자 자리별로 묶으면 간단하게 변환이 가능하다. 이 문제 같은 경우에는 2진수를 3개씩 묶어서 8진수로 변환하면 되는 문제였다.


문제 및 입출력

 


코드

import java.util.Scanner;

public class Main
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        StringBuilder sb = new StringBuilder();
        String binary = sc.next();        
        int i = binary.length()-1;
        
        while(i>=0)
        {
            int cnt = 0; // 3개씩 끊어서 체크
            int temp = 0; // 임시변수
            
            // 3개 체크할때까지 루프
            while(cnt!=3)
            {
                if(i<0)
                {
                    break;
                }
                if(binary.charAt(i)=='1')
                {
                    temp += (int)(1 * Math.pow(2, cnt));
                }
                
                // 인덱스 -, cnt+
                i--;
                cnt++;
            }
            
            sb.append(temp);
        }
        
        // 결과 문자열 반대로 출력
        System.out.println(sb.reverse().toString());
        sc.close();
    }
}

 

반응형

'[ 다먹살 ] > - Coding' 카테고리의 다른 글

[백준] 14716 현수막  (0) 2021.11.01
[백준] 11279 최대 힙  (0) 2021.11.01
[백준] 6359 만취한 상범  (0) 2021.10.29
[백준] 2446 별 찍기-9  (0) 2021.10.29
[백준] 1003 피보나치 함수  (0) 2021.10.29

댓글