cording test

LV.2 영어 끝말잇기

JM Lee 2023. 5. 7. 13:16
728x90

코딩테스트 연습 - 영어 끝말잇기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

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