내 코드
def solution(n, words):
s = []
for i,wd in enumerate(words):
if i==0:
s.append(wd)
continue
elif wd not in s and s[-1][len(s[-1])-1] == wd[0]:
s.append(wd)
else:
return [i%n+1,i//n+1]
return [0,0]
탈락하지 않은 단어는 s에 차례대로 넣는 방식으로 풀었다.
현재 단어가 s에 포함되어있지않고 s의 가장 마지막 단어의 끝자리와 s의 첫자리가 같으면 통과이므로 s에 넣는다. 만약 아니면 탈락이므로 답을 return 한다. 끝까지 돌아도 탈락자가 생기지 않으면 [0,0]을 return 한다.
다른사람 코드
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]
다른 list를 만들지 않고 코드를 짠것이다. 나와 비슷함!
'코딩테스트 > Python' 카테고리의 다른 글
[프로그래머스] [3차] 압축 (0) | 2021.09.09 |
---|---|
[프로그래머스] 튜플 - 작성중 (0) | 2021.09.09 |
[프로그래머스] 오픈채팅방 (0) | 2021.09.08 |
[프로그래머스] 문자열 압축 (0) | 2021.09.08 |
[프로그래머스] 짝지어 제거하기 (0) | 2021.09.08 |