TIL_11주차(2) 코드카타: 알고리즘(Python)

원진·2025년 2월 26일

알고리즘
1. 카드뭉치

풀이:

def solution(cards1, cards2, goal):
    answer = []
    n = len(cards1)
    m = len(cards2)
    
    i = j = 0
    for word in goal:
        if i < n and word == cards1[i]:
            answer.append(cards1[i])
            i += 1
        if j < m and word == cards2[j]:
            answer.append(cards2[j])
            j += 1
    return 'Yes' if answer == goal else 'No'
  1. 과일장수

풀이:

def solution(k, m, score):
    answer = 0
    
    score.sort(reverse=True)
    num = (len(score)//m)*m
    
    arr = []
    for i in range(1, num+1):
        arr.append(score[i-1])
        if i%m == 0:
            answer+=min(arr)*m
            arr=[]
            
    return answer
  1. 모의고사

풀이:

def solution(answers):
    answer = [0 for i in range(3)]
    
    man1 = [1,2,3,4,5]
    man2 = [2,1,2,3,2,4,2,5]
    man3 = [3,3,1,1,2,2,4,4,5,5]
    
    for i in range(len(answers)):
        ans = answers[i]
        if(man1[i%len(man1)] == ans):
            answer[0] += 1
        if(man2[i%len(man2)] == ans):
            answer[1] += 1
        if(man3[i%len(man3)] == ans):
            answer[2] += 1
            
    result = []
    for i in range(len(answer)):
        if(answer[i] == max(answer)):
            result.append(i+1)
            
    return sorted(result)

0개의 댓글