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 |
댓글