Bibbidi Bobbidi Boo

* 3시간 안에 답을 내지 못하면 답지를 보고 30분 내로 정답 판정을 받고, 3일 뒤 다시 풀어보기

 

문제 

https://school.programmers.co.kr/learn/courses/30/lessons/12981

 

프로그래머스

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

programmers.co.kr

→ Summer/Winter Coding(~2018)에 속한 문제


문제 해결 아이디어

words를 순회하면서 끝말잇기에서 탈락하는 경우가 생기면

순서와 차례를 계산해서 반환한다.


구현

내 풀이

def solution(n, words):
    added_words = set()
    for i, word in enumerate(words):        
        if word in added_words or (i > 0 and words[i - 1][-1] != word[0]) :
            number = (i + 1) % n if (i + 1) % n != 0 else n
            order = (i + 1) // n if (i + 1) % n == 0 else (i + 1) // n + 1
            return [number, order]
        added_words.add(word)
    return [0, 0]

메모

  • 걸린 시간: 20분

profile

Bibbidi Bobbidi Boo

@비비디

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!