[프로그래머스] Lv1 모의고사

O2o2✨·2020년 12월 18일
0

알고리즘

목록 보기
27/43

문제 링크: 프로그래머스 - 완전탐색 > 모의고사


풀이1(py)

def grade(nums, answers):
    cnt = 0
    i = 0
    for answer in answers:
        if nums[i] == answer:
            cnt += 1
        i += 1        
        if i == len(nums):
            i = 0

    return cnt
  
def solution(answers):
    result = []
    nums1 = [1, 2, 3, 4, 5]
    nums2 = [2, 1, 2, 3, 2, 4, 2, 5]
    nums3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
    
    result.append(grade(nums1, answers))
    result.append(grade(nums2, answers))
    result.append(grade(nums3, answers))
                
    mx = max(result)
    idx = result.index(mx)
    ret = [idx + 1]
    
    for i in range(len(result)):
        if result[i] == mx and i != idx:
            ret.append(i + 1)
        
    return ret

풀이2(js)

function scoring(person, answers){
    let j = 0;
    let result = 0;
    for (let i in answers){
        if (answers[i] == person[j]) result++;
        j++;
        if (j >= person.length) j = 0;
    }
    return result;
}

function solution(answers) {
    var scores = [];
    var answer = [];
    
    const person1 = [1, 2, 3, 4, 5];
    const person2 = [2, 1, 2, 3, 2, 4, 2, 5];
    const person3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
      
    for (let person of [person1, person2, person3]){
        scores.push(scoring(person, answers));
    }
    
    let maxVal = Math.max(...scores);
        
    for (let i in scores){
        if (scores[i] == maxVal){
            answer.push(parseInt(i) + 1);
        }        
    }
    
    return answer;
}
profile
프론트엔드 & 퍼블리셔

0개의 댓글