BackJoon Algorithm 1212 8진수 2진수 (Java)

업데이트:
최대 1 분 소요

BackJoon Algorithm - Java

alt

문제

alt

풀이

  • 8진수에서 -> 10진수 ->2진수로 넘어가면 시간초과가 일어난다.
  • 하나씩쪼개서 바로 2진수로 변환한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Back_1212 {
    public static void main(String[] args) throws IOException {

        // given
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        StringBuilder sb = new StringBuilder();
        // when
        for (int i = 0; i < s.length(); i++) {
            int n = s.charAt(i) - '0';
            if (n >= 4) {
                sb.append(1);
                n -= 4;
            } else {
                sb.append(0);
            }
            if (n >= 2) {
                sb.append(1);
                n -= 2;
            } else {
                sb.append(0);
            }
            if (n == 1) {
                sb.append(1);
                n -= 1;
            }
            else{
                sb.append(0);
            }
        }
        if(s.charAt(0)=='1'){
            sb.delete(0,2);
        }
        else if(s.charAt(0)=='2'||s.charAt(0)=='3'){
            sb.delete(0,1);
        }
        else if(s.charAt(0)=='0'){
            sb.delete(0,2);
        }
        // then
        System.out.println(sb);
        br.close();
    }
}

댓글남기기