본문 바로가기
코딩테스트/코딩테스트 문제

코딩테스트 준비 - 프로그래머스Lv2: 영어 끝말잇기 풀이 (파이썬)

by 공부가싫다가도좋아 2021. 7. 6.
반응형

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


문제풀러가기

https://programmers.co.kr/learn/courses/30/lessons/12981?language=python3 

 

코딩테스트 연습 - 영어 끝말잇기

3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0]

programmers.co.kr


문제 분석

1. 같은 단어가 나올시 탈락

2. 뒤 글자가 앞글자와 같지 않은것을 말했을시 탈락


코드

def solution(n, words):
    rs=[]
    for i in words:
        if i in rs:
            break
        if len(rs)!=0 and (rs[-1][-1]!=i[0]):
            break
        rs.append(i)
        
    if len(rs)==len(words):
        return [0,0]
    return [(len(rs)%n)+1, (len(rs)//n)+1]

코드 풀이

def solution(n, words):
    rs=[]
    for i in words:
        if i in rs: #같은 단어를 말했을때
            break
        if len(rs)!=0 and (rs[-1][-1]!=i[0]): # 앞단어의 뒷부분과 일치하지 않은 단어를 말했을때
            break
        rs.append(i)
        
    if len(rs)==len(words): # 문제없이 진행됐을시
        return [0,0]
    return [(len(rs)%n)+1, (len(rs)//n)+1]

 


정리된 코드

def solution(n, words):
    for i in range(1,len(words)):
        if words[i] in words[:i] or words[i][0]!=words[i-1][-1]:
            return [(i%n)+1,(i//n)+1]
    return [0,0]

 


<잡담>

 오늘은 조금 피곤해서 힐링되는 문제로 골랐다😩

이런 문제 너무 좋은데, 이런 문제만 가득했으면 좋겠당... 😭

반응형

댓글