파게로그
[백준 9996번] 한국이 그리울 땐 서버에 접속하지 본문
문제 링크: 9996번 제목
https://www.acmicpc.net/problem/9996
파이썬은 어지간해서는 Exception을 발생시키지 않으니 가끔 엣지 케이스를 잡아내기 힘들다는 단점도 있다. 이 문제의 경우, 아래와 같은 코드를 사용할 경우, 길이 체크 부분의 코드가 없으면 "a*a" 패턴에 대해서 "a"라는 파일 이름에 대해서도 결과값을 DA로 내버린다는 함정이 있었다.
def compare_string(a, b):
if len(a) != len(b):
return False
for i in range(len(a)):
if a[i] != b[i]:
return False
return True
n = int(input())
p = input()
star = 0
for i in range(len(p)):
if p[i]=='*':
star = i
left = p[:star]
right = p[star+1:]
answer = ""
for _ in range(n):
case = input()
# 길이 체크
if len(case) < len(left) + len(right):
answer += "NE\n"
continue
check_left = compare_string(left, case[:len(left)])
if not check_left:
answer += "NE\n"
continue
check_right = compare_string(right, case[len(case)-len(right):])
if not check_right:
answer += "NE\n"
continue
answer += "DA\n"
print(answer)
'콤퓨타 왕왕기초 > PS' 카테고리의 다른 글
[백준 9663번] N-Queen (0) | 2020.11.23 |
---|---|
[백준 1003번] 피보나치 함수 (0) | 2020.11.22 |
[백준 2748번] 피보나치 수 2 (0) | 2020.11.20 |
[프로그래머스 Lv.2] 스킬트리 (0) | 2020.11.20 |
[백준 15652번] 백트래킹 기본 4 (0) | 2020.11.19 |
Comments