본문 바로가기
코딩 테스트/프로그래머스

모의고사

by ornni 2024. 4. 19.
728x90
반응형

첫번째 코드

 

문제를 보고 든 생각은 어...학생 답을 어떻게 만들지? 였다.

하지만 몫과 나머지 방법을 이용하면 만들어볼 수 있겠구나! 라는 생각을 했다.

답에 패턴이 있으므로 정답이 답의 패턴보다 길면 해당 길이의 몫만큼 곱하고 나머지 값을 인덱싱해서 추가하는 방법으로 학생들의 답을 만든다!

 

[패턴] * (정답의 길이 // 패턴의 길이) + 패턴[:(정답의 길이 % 패턴의 길이)] << 이런 식으로!

 

이후에 정답과 비교해서 맞으면 성적에 더하고

학생들 중 가장 많이 맞은 학생의 점수를 구한 후

학생들을 반복해가면서 가장 높은 점수의 경우 추가하는 방법으로 진행했다.

(나는 작은 숫자부터 append 해서 문제가 되지 않지만 그렇지 않은 경우 오름차순 정렬을 위해 sort를 진행해야 한다.)

 

def solution(answers):    
    
    answer = []

    student1 = [1, 2, 3, 4, 5]
    student2 = [2, 1, 2, 3, 2, 4, 2, 5]
    student3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]

    answer_multiple1 = len(answers) // len(student1)
    answer_multiple2 = len(answers) // len(student2)
    answer_multiple3 = len(answers) // len(student3)

    answer_index1 = len(answers) % len(student1)
    answer_index2 = len(answers) % len(student2)
    answer_index3 = len(answers) % len(student3)

    student1_answer = student1 * answer_multiple1 + student1[:answer_index1]
    student2_answer = student2 * answer_multiple2 + student2[:answer_index2]
    student3_answer = student3 * answer_multiple3 + student3[:answer_index3]

    student1_score = 0
    student2_score = 0
    student3_score = 0

    index = 0

    for i in answers:
        if i == student1_answer[index]:
            student1_score += 1
        if i == student2_answer[index]:
            student2_score += 1
        if i == student3_answer[index]:
            student3_score += 1
        index += 1

    Max = max(student1_score, student2_score, student3_score)

    if student1_score == Max:
        answer.append(1)
    if student2_score == Max:
        answer.append(2)
    if student3_score == Max:
        answer.append(3)
        
    return answer

 

통과!

더 간단한 방법이 있을 것 같긴 하다.. 킁;


링크

https://github.com/ornni/programmers/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/1/42840.%E2%80%85%EB%AA%A8%EC%9D%98%EA%B3%A0%EC%82%AC

 

programmers/프로그래머스/1/42840. 모의고사 at main · ornni/programmers

repository for recording Programmers Algorithm problem solving - ornni/programmers

github.com

 

반응형

'코딩 테스트 > 프로그래머스' 카테고리의 다른 글

나머지가 1이 되는 수 찾기  (0) 2024.04.20
카드 뭉치  (2) 2024.04.19
내적  (0) 2024.04.18
약수의 합  (0) 2024.04.17
시저 암호  (0) 2024.04.16