티스토리 뷰
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
Stack<Integer> stack = new Stack<>();
String input = in.readLine();
int size = input.length();
for(int i=size-1; i>=0; i = i-3) {
int a = (int)input.charAt(i) - 48;
int b = 0;
int c = 0;
if(i - 1 >= 0) {
b = (int)input.charAt(i-1) - 48;
}
if(i - 2 >= 0) {
c = (int)input.charAt(i-2) - 48;
}
int temp = a + b * 2 + c * 4;
stack.push(temp);
}
while(!stack.isEmpty()) {
System.out.print(stack.pop());
}
System.out.println();
}
}
2진법에서 8진법으로 바꾸는 문제이므로 끝에서부터 세 개씩 묶어서 계산한다.
스택을 사용하여 결과를 출력하였는데 920ms로 간신히 통과했다...
Swift로는 계속 시간 초과가 뜬다.
'Algorithm > Baekjoon Online Judge' 카테고리의 다른 글
2089번 '-2진수' (0) | 2018.08.01 |
---|---|
1212번 '8진수 2진수' (0) | 2018.07.31 |
2745번 '진법 변환' (0) | 2018.07.31 |
11005번 '진법 변환 2' (0) | 2018.07.31 |
9613번 'GCD 합' (0) | 2018.07.31 |
댓글