티스토리 뷰

1. 문제

https://www.acmicpc.net/problem/4779

 

 

 

2. 풀이

def change_cantor(list):
    cube_root = len(list)**(1/3)
    breakpoint = int(len(list) / 3)

    if(cube_root == 1):
        print(list[0], end='')
        return
    else:
        list1, list2, list3 = list[0:breakpoint], list[breakpoint:breakpoint*2], list[breakpoint*2:]
        list2 = [' ' for _ in range(len(list2))]
        change_cantor(list1)
        change_cantor(list2)
        change_cantor(list3)

while True:
    try:
        N = int(input())
        cantor_target_list = ['-'] * (3**N)
        change_cantor(cantor_target_list)
        print()
    except EOFError:
        break

 

  • EOF 까지 입력받는 문제에서는 sys.stdin.readline 를 사용하면 안됨
  • sys.stdin.readline()은 EOFError를 만들지 않기 때문
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
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
29 30
글 보관함