프로그래머스 Python 문제풀이 입니다.
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12981
[나의 풀이]
def solution(n, words):
answer = [0,0]
wlist = []
wlist.append(words[0])
for i in range(0,len(words)-1):
if words[i][-1] == words[i+1][0] :
print(words[i][-1]+ "==" + words[i+1][0])
# 중복O
if words[i+1] in wlist:
print(words[i+1] + "중복")
answer[0] = (i+1) % n + 1
answer[1] = (i+1) //n + 1
break
# 중복X
wlist.append(words[i+1])
else :
answer[0] = (i+1) % n + 1
answer[1] = (i+1) //n + 1
break
return answer
N명이서 진행하는 끝말잇기 중 틀린 사람의 번호와 틀린 차례를 출력하는 문제입니다.구현하는데 있어 % , // 연산자를 활용하여 틀린 사람의 번호, 차례를 표현하는 수식을 만드는데 조금 시간이 걸렸었습니다.🐈⬛🐈⬛🐈⬛
저의 풀이 이외에
def solution(n, words):
for p in range(1, len(words)):
if words[p][0] != words[p-1][-1] or words[p] in words[:p]: return [(p%n)+1, (p//n)+1]
else:
return [0,0]
위와 같이 따로 끝말잇기 단어를 중복 검사하는 리스트를 생성하지 않고 입력값으로 주어진 단어리스트를 슬라이싱한 리스트로 체크하는 풀이도 볼 수 있었습니다.
감사합니다.😸😸😸