def get_score(guesses, solution): #guesses: 유저가 뽑은 숫자 / solution: 컴퓨터가 뽑은 숫자
strike_count = 0
ball_count = 0
#스트라이크 확인, 맞으면 번호를 지움
for i in range(len(guesses)):
if guesses[i] == solution[i]:
strike_count += 1
del guesses[i], solution[i]
for i in range(len(guesses)):
if guesses[i] in solution:
ball_count += 1
return strike_count, ball_count
print(get_score([2, 3, 7], [4, 2, 7]))
# 테스트 코드
s_1, b_1 = get_score([2, 7, 4], [2, 4, 7])
print(s_1, b_1)
strike_count = 0
ball_count = 0
#스트라이크 확인, 맞으면 번호를 지움
for i in range(len(guesses)):
if guesses[i] == solution[i]:
strike_count += 1
del guesses[i], solution[i]
for i in range(len(guesses)):
if guesses[i] in solution:
ball_count += 1
return strike_count, ball_count
print(get_score([2, 3, 7], [4, 2, 7]))
# 테스트 코드
s_1, b_1 = get_score([2, 7, 4], [2, 4, 7])
print(s_1, b_1)
제가 파이참으로 작성한 코드에요
실행하면
(1, 1)
if guesses[i] == solution[i]:
----------^^^
error: index out of range
로 윗 프린트는 실행이 되지만
아랫프린트는 안되는데요
개요는 숫자야구에요
리스트 2개 받아서 위치와 숫자가 같은거, 숫자만 같은거 확인하는데
저는 스트라이크라면 그 번호를 아예 지우기로 했어요
이게 질문이에요
윗프린트와 아랫프린트 차이점이 변수에 갔다왔느냐 인데
그 차이때문에 인덱스 범위 밖 오류가 뜰 수가 있나요?
혹시 이유도 알려주실 수 있나요?
반복문 돌면서 리스트의 요소를 삭제하면 리스트의 길이가 짧아지니까 인덱스아웃 에러 나는거임
이해했어요! 친절한 설명 감사합니다
첫번째 반복문에 있는 if문에 else추가하고 그 else에서 ball 카운팅하면 요소 삭제할 필요가 없지 않음?
INDEX가 범위를 벗어났데여
넵! 고쳐볼게요!
del 해서 그럼
고마워요!!