Baek_5430

원성혁·2022년 10월 5일
0

algorithm

목록 보기
3/21
post-thumbnail

class 3 탈출을 위해 오늘도 문제를 풀어보았다.
오늘 문제는 기분 나쁜 문제였다....
요즘 내가 생각이란걸 하기 싫은건지...
논리는 맞았지만 시간단축이 필요했던 문제였다.

import sys
from collections import deque

cnt = int(sys.stdin.readline())
for _ in range(cnt):
    err = False
    com = list(sys.stdin.readline().rstrip())
    word_num = int(sys.stdin.readline())
    words = deque(sys.stdin.readline().rstrip()[1:-1].split(','))
    if word_num == 0:
        words = deque()
    flip = 0
    for i in com:
        if i == 'R':
            flip+=1
        elif i == 'D':
            if words:
                if flip % 2 == 0:
                    words.popleft()
                else:
                    words.pop()
            else:
                err = True
                break
        # print(words)
    if err:
        print('error')
    else:
        if flip%2 != 0:
            words.reverse()
        print("["+",".join(words)+"]")

다른 블로그 뒤져서 알게되었다.
이 문제를 보며 골드5가 왜이리 쉽지? 하면서 풀었는데
아니나 다를까 시간초과 문제를 겪었다.
애초에 deque를 써서 시간이 오래 걸릴수 없다고 생각하고 이것저것 바꿔봤는데
핵심은 reverse가 오래걸린다는 거였다......

결국 스포 당했지만 reverse를 나중에 해주고 reverse를 하냐 안하냐를 표시해서 그거에따라
D 명령어가 왔을때 앞에서 뺄지 뒤에서 뺄지만 고민하면 된다.....
넘 열받는다.
이걸 못풀다니ㅎ

암튼 내 정확도는 여러번 돌려서 또 낮아졌고
문제는 겨우 통과했지만 보고 풀게되어서 찝찝하다...

이런게 알고리즘인거 같다... 효율을 생각하는거...
반성하겠다.

profile
AI개발자를 향해 전진중

0개의 댓글