Skip to content

[Algorithm] 모의고사 #57

Description

@hwangJi-dev

💬 문제

[코딩테스트 연습 - 모의고사](https://school.programmers.co.kr/learn/courses/30/lessons/42840)


💬 Idea

  • 수포자 1,2,3의 정답 배열을 만든다. (answers보다 길도록)
  • answer 배열을 돌면서 supoza1,2,3과 정답이 같은 경우에 dict에 해당 점수를 더한다.
  • dict의 max value값과 같은 value를 가진 key만을 filter링하여 정답으로 도출한다.

💬 풀이

import Foundation
func solution(answers:[Int])->[Int]{letsupoza1=Array(String(repeating:"12345", count:(answers.count /5)+1)).map({String($0)})letsupoza2=Array(String(repeating:"21232425", count:(answers.count /8)+1)).map({String($0)})letsupoza3=Array(String(repeating:"3311224455", count:(answers.count /10)+1)).map({String($0)})vardict:[Int:Int]=[1:0,2:0,3:0]for(index, answer)in answers.enumerated(){dict[1]=supoza1[index]==String(answer)?dict[1]! +1:dict[1]dict[2]=supoza2[index]==String(answer)?dict[2]! +1:dict[2]dict[3]=supoza3[index]==String(answer)?dict[3]! +1:dict[3]}return dict.filter({ $0.value == dict.values.max()}).keys.sorted()}

💬 더 나은 풀이

import Foundation
func solution(answers:[Int])->[Int]{letsupoza1=[1,2,3,4,5]letsupoza2=[2,1,2,3,2,4,2,5]letsupoza3=[3,3,1,1,2,2,4,4,5,5]vardict:[Int:Int]=[1:0,2:0,3:0]for(index, answer)in answers.enumerated(){dict[1]=supoza1[index %5]== answer ?dict[1]! +1:dict[1]dict[2]=supoza2[index %8]== answer ?dict[2]! +1:dict[2]dict[3]=supoza3[index %10]== answer ?dict[3]! +1:dict[3]}return dict.filter({ $0.value == dict.values.max()}).keys.sorted()}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions