영어 끝말잇기 - Python

2023. 10. 16. 20:18공부/📝 프로그래머스

1. 풀이 코드

def solution(n, words):
    temp = words[0][0]
    player = 0
    word_num = 1
    word_list = []
    for item in words:
        if player >= n:
            player = 1
            word_num += 1
        else:
            player += 1
        if item[0] == temp:
            if item in word_list:
                return [player, word_num]
            else:
                word_list.append(item)
                temp = item[-1]
        else:
            return [player, word_num]
    return [0, 0]


# Test Cases
print(solution(3, ["tank", "kick", "know", "wheel",
      "land", "dream", "mother", "robot", "tank"]))
print(solution(5, ["hello", "observe", "effect", "take", "either", "recognize", "encourage",
      "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"]))
print(solution(2, ["hello", "one", "even", "never", "now", "world", "draw"]))

  지저분하지만 차근차근 주어진 조건을 해결했습니다.

 

 

2. 다른 사람 풀이 코드

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]

  저와는 다르게 range()를 사용해서 풀었습니다. 이러한 이유로 이전의 값을 불러오기 용해졌네요.

 


 

프로그래머스

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

programmers.co.kr