프로그래머스_영어 끝말잇기

임정민·2023년 5월 26일
1

알고리즘 문제풀이

목록 보기
52/173
post-thumbnail

프로그래머스 Python 문제풀이 입니다.

문제

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

[나의 풀이]

def solution(n, words):
    
    answer = [0,0]
    wlist = []
    
    wlist.append(words[0])
        
    for i in range(0,len(words)-1):

        if words[i][-1] == words[i+1][0] :
            print(words[i][-1]+ "==" + words[i+1][0])
            
            # 중복O
            if words[i+1] in wlist:
                print(words[i+1] + "중복")
                answer[0] = (i+1) % n + 1 
                answer[1] = (i+1) //n + 1
                break
                
            # 중복X
            wlist.append(words[i+1])
        else :
            answer[0] = (i+1) % n + 1
            answer[1] = (i+1) //n + 1
            break
            

    return answer

N명이서 진행하는 끝말잇기 중 틀린 사람의 번호와 틀린 차례를 출력하는 문제입니다.구현하는데 있어 % , // 연산자를 활용하여 틀린 사람의 번호, 차례를 표현하는 수식을 만드는데 조금 시간이 걸렸었습니다.🐈‍⬛🐈‍⬛🐈‍⬛

저의 풀이 이외에

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]

위와 같이 따로 끝말잇기 단어를 중복 검사하는 리스트를 생성하지 않고 입력값으로 주어진 단어리스트를 슬라이싱한 리스트로 체크하는 풀이도 볼 수 있었습니다.

감사합니다.😸😸😸

profile
https://github.com/min731

0개의 댓글