티스토리 뷰

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
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함