728x90
코딩테스트 연습 - 영어 끝말잇기 | 프로그래머스 스쿨 (programmers.co.kr)
조건 : 이전에 등장한 단어는 안 됨(이전 등장 단어 리스트에 있으면 안 됨), len > 1
return : 탈락하는 사람의 번호(list % n), 몇 턴에 탈락하는지?(list // n)를 리스트로 반환
직전 단어의 끝 글자와 다음 단어의 첫 글자가 같아야 한다는 조건을 활용하는 방법에서
어제 공부한 stack을 이용해야겠다는 생각을 했다.
stack을 이용하니 한결 쉽게 해결되는 것을 볼 수 있다.
answer에 +1을 하는 이유는 자기 자신을 검거해야 하는데, 자기 자신을 append하지 않았기 때문에 한 것.
def solution(n, words):
answer = [0,0]
stack = [words[0]] # 스택 설정
for i in range(1, len(words)):
if stack[-1][-1] == words[i][0] and words[i] not in stack:
stack.append(words[i])
else:
answer[0] = (i % n) + 1
answer[1] = (i // n) + 1
break
return answer
'cording test' 카테고리의 다른 글
Lv.1 신고 결과 받기 (1) | 2023.05.17 |
---|---|
Lv.1 신규 아이디 추천 (0) | 2023.05.17 |
LV.1 기사단원의 무기 (0) | 2023.05.07 |
LV.0 다음에 올 숫자 (0) | 2023.05.07 |
LV.2 괄호 회전하기 (0) | 2023.05.07 |