www.acmicpc.net/problem/1373
1373번: 2진수 8진수
첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다.
www.acmicpc.net
2진수가 주어졌을 때, 8진수로 변환하는 프로그램을 작성하시오.
2진수가 주어졌을 때 8진수로 변환하는 방법은 뒤에서부터 3글자씩 잘라서 각 글자에 4,2,1을 곱해서 더해주면 된다. 101111 이 주어졌다면 3글자씩 잘라서 101 , 111로 만든뒤 (1 * 4) + (0 * 2) + (1 * 1) , (1 * 4) + (1 * 2) + (1 * 1) = 57이 된다.3으로 나눠떨어지지 않는 글자 수의 2진수가 주어진다면 (ex 1100101 -7글자) 3으로 나눠떨어질 수 있도록 앞에 0을 붙여서 3으로 나눠준다 (1,100,101 -> 001,100,101 ) 그 후에 각각 4,2,1을 곱해서 더해준다. 이를 수행하기 위해서 입력받은 2진수의 글자 수를 3으로 나눠서 1이 남는다면 (7행) 입력받은 이진수의 첫 글자를 출력해준다. (1을 곱해서 출력하는 것은 그냥 출력하는 것과 같기 때문) 3으로 나눠서 2가 남는다면 (10행) 입력받은 이진수의 첫 글자에 2를 곱하고 두 번째 글자와 더해서 출력해준다. (3으로 나눠서 2가 남는다는 말은 3글자씩 잘랐을 때 앞에 2글자가 남는다는 말이고 0 하나를 붙여서 4,2,1을 곱해서 더해야 하는데 0 * 4 = 0 이기 때문에 첫 번째 수 * 2 + 두 번째 수를 출력해준다. )그 후에 3글자씩 잘라서 각각 4,2,1을 곱한 뒤 더해서 출력해준다. (13~14행)
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.