문제 확인
나의 풀이
- 중복 여부를 확인하기 위해서 set()을 사용했고, 그에 따라 마지막 단어를 확인하는 변수도 활용했다.
- words의 길이가 50 정도로 작은 편이기 때문에, 리스트를 사용해서 마지막 단어, 중복 여부 확인을 동시에 하는 것이 더 좋았을 거 같다.
# 정답 : (먼저 탈락하는 사람의 번호, 몇 번째 차례에 탈락)
def solution(n, words):
answer = [0, 0]
# 중복 단어 체크
word_set = set()
last_word = ""
# 끝말잇기 시작
for idx, word in enumerate(words):
# 초기 문자 없는 경우
if not last_word:
last_word = word
word_set.add(last_word)
continue
# 끝말잇기 실패 처리
if word in word_set or word[0] != last_word[-1]:
answer = [idx % n + 1, idx // n + 1]
break
# 정상적으로 진행
else:
last_word = word
word_set.add(last_word)
return answer