상세 컨텐츠

본문 제목

[프로그래머스 풀이]: [PCCE 기출문제] 6번 / 가채점

파이썬 코딩테스트

by Corn/sec 2024. 8. 16. 14:01

본문

 

출제된 문제에서 디버깅을 하는 문제.

> 주요 문구: "our_score[i]는 numbers[i]번 학생이 가채점한 점수입니다. numbers는 중복된 원소를 가지지 않습니다."

> 문제에서는 our_score 인덱스에 해당하는 값을 numbers의 인덱스로 사용. 또한 이것이 score_list의 값과 같을 때 "same"을 append함.

> 인덱스 값이 잘못 선택된 것.

 

# 문제

def solution(numbers, our_score, score_list):
    answer = []
    for i in range(len(numbers)):
        if numbers[our_score[i]] == score_list[i]:
            answer.append("Same")
        else:
            answer.append("Different")
    
    return answer

 

#풀이

def solution(numbers, our_score, score_list):
    answer = []
    for i in range(len(numbers)):
        if our_score[i] == score_list[numbers[i]-1]:
            answer.append("Same")
        else:
            answer.append("Different")
    
    return answer

> 핵심 부분:

  • score_list[numbers[i]-1] 부분이 중요한데, numbers[i]는 학생 번호이고, 실제 성적 리스트에서 이 학생 번호에 해당하는 성적을 찾기 위해 인덱스를 numbers[i]-1로 지정. 이유는 리스트 인덱스가 0부터 시작하기 때문에 학생 번호에서 1을 빼야 올바른 인덱스가 됨

> 예시:

만약 numbers = [1, 2, 3], our_score = [85, 90, 75], score_list = [85, 80, 75] 이라고 한다면:

  • 1번 학생: 가채점 85, 실제 성적 85 → "Same"
  • 2번 학생: 가채점 90, 실제 성적 80 → "Different"
  • 3번 학생: 가채점 75, 실제 성적 75 → "Same"

결과는 ["Same", "Different", "Same"]이 됨

관련글 더보기