https://school.programmers.co.kr/learn/courses/30/lessons/12981
1. 내가 작성한 풀이
def solution(n, words):
for i in range(len(words)):
check = True
if words[i] in words[:i]:
check = False
elif i !=0 and words[i][0] != words[i-1][-1]:
check = False
if not check:
return [i%n+1,i//n+1]
return [0,0]
- 제일 첫 번째 단어에서 index error가 나는 걸 방지하기 위해 elif 문에서 i != 0 을 작성해줬는데, 어차피 첫 번째 단어에서는 탈락자가 나올 수 없기 때문에 for문의 시작을 1로 잡으면 훨씬 더 간단하게 코드가 완성된다.
2. 리팩토링
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]
(참고)
- i % n + 1을 하면 탈락자의 번호를 알 수 있다.
- i // n + 1을 하면 탈락 round를 알 수 있다.
'🔅코딩테스트 공부🔅 > ❗프로그래머스(Lv.2)' 카테고리의 다른 글
[프로그래머스] Level2 구명보트(python) (0) | 2023.04.18 |
---|---|
[프로그래머스] Level2 큰 수 만들기(python) (0) | 2023.04.17 |
[프로그래머스] Level2 괄호 회전하기(python) (0) | 2023.03.29 |
[프로그래머스] Level2 우박수열 정적분(python) (0) | 2023.03.23 |
[프로그래머스] Level2 다음 큰 숫자(python) (0) | 2023.03.18 |
댓글