- Date : 2020.09.14(월)
- Time : 15분
- 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다.
- 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다.
- 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다.
- 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다.
- 이전에 등장했던 단어는 사용할 수 없습니다.
- 한 글자인 단어는 인정되지 않습니다.
- 사람의 수 n과 사람들이 순서대로 말한 단어 words 가 매개변수로 주어질 때, 가장 먼저 탈락하는 사람의 번호와 그 사람이 자신의 몇 번째 차례에 탈락하는지를 구해서 return 하도록 solution 함수를 완성해주세요.
for i in range(0,len(words),1):
answer[i%n].append(words[i])
: 먼저 현재 이어져있는 끝말잇기를 사람 별로 분류해주는 작업을 했다.
for j in range(0,len(answer[0]),1):
for k in range(0,n,1):
if (answer[k][j][:1] == last) and (len(answer[k][j])>1) and (answer[k][j] not in used) :
# 끝말잇기 조건 3개를 만족하는지를 검수한다.
# 첫번재 조건 : 마지막에 끝난 단어로 시작했는지
# 두번째 조건 : 글자 수가 한글자 초과 인지
# 세번째 조건 : 이미 사용했던 단어가 아닌지
last = answer[k][j][len(answer[k][j]) - 1:]
# 끝말잇기 조건을 만족하면 이어진 단어의 마지막 글자를 저장해둔다.
used.append(answer[k][j])
# 그리고 사용한 단어는 배열에 저장해둔다.
else :
return [k+1,j+1]
# 만약 조건을 하나라도 만족하지 못한다면 리턴한다.