https://school.programmers.co.kr/learn/courses/30/lessons/12981
이런식으로 이미 언급한 단어를 또 말하거나, 아니면 앞단어의 마지막 글자가 그 다음의 첫 글자랑 다르면 틀린 사람을 알려주면 된다.
1. 앞 단어의 마지막 글자가 그 다음의 첫 글자랑 다른 경우
for i in range(1, len(words)):
if words[i][0] != words[i-1][-1]:
끝말잇기에서 첫번째 사람이 틀릴 리는 없으니까 두번째 사람부터 확인해준다.
2. 언급한 단어를 또 말하는 경우
elif words[i] in words[:i-1]:
지금 단어가 그 전에 언급되었는지 확인하면 된다.
<전체 코드-수정 전>
def solution(n, words):
flg = 0
turn = 0
who = 0
answer = []
for i in range(1, len(words)):
if words[i][0] != words[i-1][-1]:
if (i+1)%n==0:
turn = (i+1)/n
who = n
else:
turn = i//n +1
who = (i+1)%n
answer.append(who)
answer.append(turn)
flg = 1
return answer
elif words[i] in words[:i-1]:
flg = 1
if (i+1)%n==0:
turn = (i+1)/n
who = n
else:
turn = i//n +1
who = (i+1)%n
answer.append(who)
answer.append(turn)
return answer
else:
continue
if flg == 0:
return [0,0]
<전체코드-수정 후>
def solution(n, words):
flg = 0
turn = 0
who = 0
for i in range(1, len(words)):
if words[i][0] != words[i-1][-1] or words[i] in words[:i-1]:
if (i+1)%n==0:
turn = (i+1)/n
who = n
else:
turn = i//n +1
who = (i+1)%n
flg = 1
return [who, turn]
else:
continue
if flg == 0:
return [0,0]
for문 다 돌았을때 오답자가 없으면 [0,0] return하는건 flg으로 해결했다
'파이썬 알고리즘' 카테고리의 다른 글
[파이썬] SWEA 문제해결 1일차 - View (0) | 2022.12.07 |
---|---|
[파이썬] SWEA 파스칼의 삼각형 (0) | 2022.12.07 |
[파이썬] SW 문제해결 기본 5일차 - Magnetic (0) | 2022.12.07 |
[파이썬] 백준 15649 N과 M (1) (0) | 2022.12.06 |
[파이썬] 백준 11047 동전 0 (0) | 2022.12.06 |