_Han_
나의 개발 노트
_Han_
  • 분류 전체보기 (272)
    • 데이터 엔지니어링 (29)
    • 인프라 (3)
    • 추천시스템 (11)
    • 코딩테스트 (146)
    • 부트캠프 회고 (15)
    • 회고 (4)
    • 자격증 (1)
    • 파이썬 프로그래밍 (6)
    • 통계 (2)
    • Git (21)
    • 유니티2D (33)

최근 글

반응형
hELLO · Designed By 정상우.
_Han_

나의 개발 노트

[코딩테스트] 프로그래머스 영어 끝말잇기 파이썬(Python)
코딩테스트

[코딩테스트] 프로그래머스 영어 끝말잇기 파이썬(Python)

2022. 12. 27. 16:46
반응형

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

 

프로그래머스

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

programmers.co.kr

def solution(n, words):
    turn = 1
    speaker = 1
    word_list = []
    for i in range(len(words)):
        if i== 0:
            pass
        else:
            pre_word=words[i-1]
            cur_word = words[i]
            word_list.append(pre_word)
            if pre_word[-1] != cur_word[0]:
                return [speaker,turn]
            elif cur_word in word_list:
                return [speaker, turn]
        if speaker == n:
            speaker = 1
            turn +=1
        else:
            speaker += 1
    return [0, 0]

먼저 아래의 3개의 변수를 초기화합니다.

 

- turn : 몇 번째 차례인지 확인하는 변수

- spearker : 몇번 사람이 말을 하는지 확인하는 변수

- word_list : 말한 문자를 저장하는 리스트

 

그리고 주어진 words 리스트를 반복합니다.

- 이때 가장 첫번째 문자(index = 0)문자는 넘어갑니다.

 

이전 문자(pre_word)와 현재 문자(cur_word)를 조건에 맞게 확인합니다.

- 조건 1 : 이전 단어의 마지막 문자가 현재 단어의 첫번째 문자와 동일한지

- 조건 2 : 이전 단어가 등장한적이 있는지

그리고 이전 문자를 word_list에 저장합니다.

위의 두 조건을 만족하지 않는다면 현재 말한 사람의 번호(speaker)와 차례(turn)를 반환합니다.

 

말한 사람의 번호(speaker)와 차례(turn)를 찾기 위하여 

speaker 이 주어진 사람(n)과 동일하다면 즉 마지막 사람이 되었다면

다시 첫번째 순서로 바꾸어주고

차례(turn)을 +1을 합니다

 

위의 조건이 아니라면 speaker를 +1 해줍니다

 

위의 반복문을 모두 통과하였다면 탈락자가 생기지 않았다는 의미이기 때문에

[0, 0]을 반환합니다.

 

반응형

'코딩테스트' 카테고리의 다른 글

[코딩테스트] 프로그래머스 방문 길이 파이썬(Python)  (0) 2022.12.31
[코딩테스트] 프로그래머스 점프와 순간 이동 파이썬(Python)  (0) 2022.12.28
[코딩테스트] 프로그래머스 할인 행사 파이썬(Python)  (0) 2022.12.26
[코딩테스트] 프로그래머스 크기가 작은 부분문자열 파이썬(Python)  (0) 2022.12.23
[코딩테스트] 프로그래머스 N개의 최소공배수 파이썬(Python)  (0) 2022.12.22
    '코딩테스트' 카테고리의 다른 글
    • [코딩테스트] 프로그래머스 방문 길이 파이썬(Python)
    • [코딩테스트] 프로그래머스 점프와 순간 이동 파이썬(Python)
    • [코딩테스트] 프로그래머스 할인 행사 파이썬(Python)
    • [코딩테스트] 프로그래머스 크기가 작은 부분문자열 파이썬(Python)
    _Han_
    _Han_
    학습한 것을 기록합니다.

    티스토리툴바