프론트엔드 개발자의 기록 공간

[프로그래머스 JavaScript] 모의고사 본문

알고리즘_JS/프로그래머스_Level1

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

[리우] 2021. 5. 22. 13:29

프로그래머스 Level1 모의고사 문제

 

문제 풀이 : answers의 정답이 주어졌을때 1,2,3번의 학생이 찍는 순서에 따라 몇 문제 맞췄는지 파악해서 제일 많이 맞춘 학생을 찾으면 되는 문제이다.

 

간단하게 풀면 answers의 반복문을 돌리면서 1,2,3번의 학생의 답과 비교해서 맞추면 새로운 배열에 카운트를 해준다.

그 후 최대값에 해당하는 배열의 인덱스를 추출하면 학생이 번호가 되기때문에 추출해준다.

 

코드 설명 : 최종적으로 answer 배열에 학생들의 정보가 들어간다.

시간복잡도는 map과 for문을 사용했지만 그 안에 포함된 연산은 O(1)이므로 최종적으로 O(n)의 시간복잡도를 가진다.

 

* 위의 코드는 개선시킨 문제이고 처음으로 해결했던 방법은 Map객체를 사용했다. 하지만 좀더 간편하고 직관적이게 수정을 했다. Map을 사용한 방법은 다음과 같다.

* 제출후 채점하기를 통해 경과시간을 체크하니 Map객체를 사용했을시 시간이 미세하게 더 오래걸린다.

728x90
Comments