study gomi

[프로그래머스/Programmers] Summer/winter Coding(~2018) 영어 끝말잇기 (파이썬 Python) 본문

Practice/Programmers

[프로그래머스/Programmers] Summer/winter Coding(~2018) 영어 끝말잇기 (파이썬 Python)

공부하곰 2024. 5. 9. 15:46
728x90
반응형

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

 

프로그래머스

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

programmers.co.kr

 

내 제출

- 주석이 더 있었는데 지웠다.

- 깔끔한 코드는 아니다.

- 첫 번째 턴의 단어 (첫 번째 사람, 시작 단어)는 그냥 처음부터 set에 넣고 했으면 좋았을 것 같다.

- 그러면 굳이 turn!=1 검사를 안 해도 됐을 듯.

- answer에 결과 집어넣는 부분도 코드가 동일한데 반복문 앞 뒤를 좀 바꿔서 한 번에 결과 출력하게 했을 수도 있을 듯.

import math

def solution(n, words):
    # 사람의 수 n, 사람들이 순서대로 말한 단어 배열 words
    answer = [0,0]

    # 단어 저장 set 필요.
    said_word = set()
    
    # 차례
    turn = 0
    
    for cur_word in range(len(words)):
        turn += 1
        
        if turn != 1:
            if words[cur_word][0] != words[cur_word-1][-1]:
                if turn % n == 0:
                    answer = [n, turn//n]
                    break
                else:
                    answer = [turn%n, math.ceil(turn/n)]
                    break

        before_n = len(said_word)
        said_word.add(words[cur_word])
        after_n = len(said_word)
        
        if before_n == after_n :
            person = turn % n
            if person == 0 :
                person = n
                
            answer = [person, math.ceil(turn/n)]
            break

    return answer

 

결과

728x90
반응형