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

Min-Jae Song·2021년 4월 26일
0

코테

목록 보기
8/10

링크 : 프로그래머스 - 영어 끝말잇기

def solution(n, words):
    answer = []
    check = {}
    count = 1
    num = 1
    pre_word= None
    
    for word in words:
        if num > n:
            num=1
            count+=1 
        if pre_word :
            if (pre_word[-1] != word[0]) or (word in check):
                return [num, count]
            
        check[word] = None
        pre_word = word
        num+=1
    
    return [0,0]

일반적인 구현문제이다.
중복확인은 dictionary자료형으로 해주고
이전 단어를 저장해두었다가 현재 문자랑 비교해준다.


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]

이건 다른분의 코드인데 내가 부족했던 부분은

  1. 굳이 첫번째 값을 고려할 필요가 없다
  2. 중복확인은 리스트에서 확인할 수 있다.
    • 이 부분은 사실 조금 의문인게 in 리스트와 in 딕셔너리의 속도 차이가 있지않을까?
  3. 제일 큰 부분은 (p%n)+1과 (p//n)+1로 번호와 횟수 계산
profile
개발세발스토오리

0개의 댓글