<백준 5397번 키로거>
from sys import stdin
N = int(stdin.readline())
for _ in range(N):
sList = list(stdin.readline())[0:-1]
reList= ["0" for _ in range(len(sList))]
i = 0 # 마우스 위치
for K in range(len(sList)):
if sList[K] == "<" : # 커서 움직임
if i == 0:
pass
else:
i -= 1
elif sList[K] == ">":
i += 1
elif sList[K] == "-": # 빼기
if i == 0:
pass
else:
reList[i-1] = '0'
else: # 문자
if reList[i] != 0: # 문자가 있는 상태
for w in range(len(sList)-i):
reList[len(sList)-1-w] = reList[len(sList)-2-w]
reList[i] = sList[K]
# reList.insert(i,sList[K])
i += 1
result = ""
for cha in reList:
if cha != '0':
result += cha
print(result)
50 퍼센트에서 시간초과가 난다.
insert 시간복잡도가 O nlogn 이라길래 한번 포문으로 바꿔봤는데 다를 건 없었던 것 같다ㅎㅎ
문자 하나씩 넣는 거 split map 안 써도 된다는 거 자꾸 까먹는다..
sList = list(stdin.readline())[0:-1]
(\n 유의)
sys.stdin.readline() 은 input() 이다..!.!.!
스택을 써야 하는 것 같다.
[백준] 5397번 키로거 파이썬 풀이
난이도: 중 풀이시간: 40분 분류: 스택, 배열, 시뮬레이션, 링크드 리스트 링크: [link]
assaeunji.github.io
리스트명.pop()
을 하면 (괄호안에 아무것도 안 쓰면) 맨 마지막 값 반환!
from sys import stdin
N = int(stdin.readline())
for _ in range(N):
sList = list(stdin.readline())[0:-1]
left = []
right = []
for cha in sList:
if cha == ">":
if right: # 있으면 True니까...!
A = right.pop()
left.append(A)
elif cha == "<":
if left:
A = left.pop()
right.append(A)
elif cha =="-":
if left:
left.pop()
else:
left.append(cha)
print("".join(left)+"".join(reversed(right))) # right은 거꾸로 받아야 함/리스트 합칠때는 join 쓰기!
저번에 체육복 문제 풀었으니까 한개만 올려도 되겟지
푼 문제 코드와 사진을 이독 레퍼지토리에 올려야 하는데
비주얼 스튜디오 코드와 깃을 연동하고 싶다.
터미널창은 넘 어렵.. 여기서 오류가 하도 많이 나서..
또 뭘 잘못했는지 컴퓨터의 사진이랑 문서들이 증발했다..
비주얼스튜디오에서 보니까 근데 10000개의 문서가 올라와 있길래.. git init . 명령어 써서 그런가? 해결할 방법을 찾아봐야겠다..
이제는 리스트와 내 딱딱한 머리로만 문제를 상대하는 데에 한계가 느껴지는 것 같다.
그래서 알고리즘과 시간복잡도, 다양한 기능 사용을 위해서 doit 알고리즘 코딩테스트 책을 샀다.
자꾸 책을 사들이는 버릇이 생겼는데
책은요, 읽을 책을 사는 게 아니고 산 책 중에 읽는 거예요
-김영하
아하! 그렇군요!
책상에 5권의 읽는 중인 책이 있지만 굿~
끗
'Club|Project > EDOC 프로그래밍 동아리 | Algorithm' 카테고리의 다른 글
💠𝙴𝙳𝙾𝙲💠 16기 전체기획 (0) | 2023.06.28 |
---|---|
✳️ 𝙴𝙳𝙾𝙲 ✳️ 2023 - 2학기 + 회장 (2) | 2023.05.31 |
EDOC 1-2 1회차 (0) | 2022.09.14 |
Edoc 엠티 팀대항 코딩 (0) | 2022.08.24 |
EDOC 2022.08 3주차 (0) | 2022.08.16 |