Programmers

[프로그래머스 / 파이썬 풀이] 영어 끝말잇기

Hoo_Dev 2023. 2. 15. 10:01
def solution(n, words):
    dic = {words[0] : 1}

    for i in range(1, len(words)):
        
        if words[i][0] != words[i-1][-1]:
            return [i % n + 1, i // n + 1]
        else:
            if words[i] not in dic:
                dic[words[i]] = 1
            else:
                dic[words[i]] += 1
                return [i % n + 1, i // n + 1]

    return [0, 0]

 

 

  1. 딕셔너리를 생성 후 끝말잇기의 첫 값을 키밸류로 넣는다.
  2. for문을 1번 인덱스부터 시작해 각 단어의 끝과 첫 글자를 비교한다. (다르면 return)
  3. 이후 딕셔너리에 없으면 추가, 있으면 +1을 해주면서 만약 +1이 된다면 중복이므로 return 해준다.
  4. [i % n + 1, i // n + 1] 가 의미 하는 것은 인덱스의 몫 + 1은 순회 횟수가 될 것이고, 인덱스의 나머지의 +1 은 차례가 된다.