출력을 찍었을 때 예시 출력과 같게 나오는데 인덱스에러가 나서 이것 저것 추가했더니 통과가 되었다.
"?"가 맨 앞에 나오거나 맨 마지막일 경우를 추가했고 코드 마지막의 if를 추가했다. (문제에서 조건을 좀 더 자세히 명시해줬으면 좋겠다...)
N = int(input())
record = []
for n in range(N):
record.append(input())
M = int(input())
candidates = []
for m in range(M):
candidates.append(input())
if "?" in record:
i = record.index("?") # "?"가 맨 처음일 경우
if i == 0:
first_char = ""
else:
first_char = record[i - 1][-1] #앞단어 마지막 글자
if i == len(record) - 1: # "?"가 맨 마지막일 경우
last_char = ""
else:
last_char = record[i + 1][0] #뒷단어 첫 글자
for word in candidates:
if word not in record:
if (not first_char or word[0] == first_char) and (not last_char or word[-1] == last_char):
print(word)
# "?"를 index()로 위치 확인, 앞과 뒤 글자 확인하기
# record에 not in 조건으로 중복 확인하기
헷갈리는 문법 정리하기
if (not first_char or word[0] == first_char) and (이하생략):
print(word)
if문 안의 'not' 키워드는 뒤에 오는 조건이 False인 경우를 의미.
not first_char or word[0] == first_char