-
(백준)4949- rstrip() vs strip()CS/Algorithm 2024. 8. 22. 05:11반응형
백준 4949번은 쉽게 풀었으나 정리할 내용이 있어서 작성한다.
import sys while True: ps = sys.stdin.readline().rstrip() if ps == '.': break stack = [] is_vps = True for char in ps: if char == '(': stack.append(char) elif char == ')': #스택이 비어있으면 False처리 if not stack: is_vps = False break #스택이 비어있지는 않은데 들어있는 값이 [ 라먄 elif stack[-1] == '[': is_vps = False break stack.pop() elif char == '[': stack.append(char) elif char ==']': if not stack: is_vps = False break elif stack[-1] == '(': is_vps = False break stack.pop() # 스택이 비어 있지 않으면 올바르지 않은 괄호 문자열 if stack: is_vps = False # 결과 출력 if is_vps: print("yes") else: print("no")코드는 잘 작성했는데
.하고
.를 구분짓지 못한 문제가 생겼었다. (띄워쓰기를 구분짓는 문제)
이를 위해선 sys.stdin.readline().rstrip()에 대해서 알아야한다.
rstrip vs strip
이 함수들은 양쪽의 공백을 없애는가 아니면 오른쪽의 공백을 없애냐의 차이이다.
rstrip()함수를 쓰면 입력값의 오른쪽의 공백만 제거하기떄문에 띄워쓰기한 .을 구분지을수 있다.
readline() vs read()
한줄로 읽느냐 아니면 전체를 읽느냐의 차이이다.
read()의 경우 전체 입력을 받기 때문에 ctrl c 같은 인터럽트 혹은 EOF를 넣어주어야 끝난다.
그렇지 않으면 계속 입력을 받는다.
반응형'CS > Algorithm' 카테고리의 다른 글
(백준) 1012번 유기농 배추 (2) 2025.01.02 (백준)2346 (1) 2024.08.24 (백준) 9012 (2) 2024.08.20 (백준)1929번 에라토스테네스의 체 알고리즘 (4) 2024.08.15 (백준)4134번 제곱근 소수 판정법 (2) 2024.08.15