[매일코딩-프로그래머스] 모의고사 01

2021. 11. 25. 10:18WEB Dev/CordingTEST

728x90

 

 

다른 문제로 넘어가기로 했다.

 

수포자가 문제를 찍는 방식을 문제로 내다니 너무하다 이과놈들아.

 

 

우선 사람 세 명이 있고,

문제는 최대 10,000문제까지 있다.

문제의 정답은 1부터 5까지이고

세 사람의 정답 적는 방식은 각각 다르다.

 

1번 : 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...
2번 : 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...
3번 : 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...

 

조건이 있다.

 

1. 모두 문제를 한 문제라도 맞춘 경우, 세 사람 중 가장 많은 문제를 맞춘 사람부터 가장 적게 맞춘 사람 순서로 배열에 넣는다. 

2. 누군가 모든 문제를 맞췄다면 그 사람만 배열에 넣는다.

3. 모든 사람이 동등하게 맞췄다면 값을 오름차순 한다. 

* 오름차순은 차례대로 올라가는 것 (1▶2▶3)

 

 

배열이 두 개 주어지기 때문에 배열끼리 비교하는 것이 좋을 것 같다.

정답이라는 것은 내가 낸 답과 정답지의 답의 교집합이기 때문에 비교할 때 교집합을 사용한다.

▷ 여기서 도움을 받은 글 링크

 

[Javascript] 두 배열의 대한 비교 방법

[Javascript] 두 배열의 대한 비교 방법 실무에서나 알고리즘의 대한 공부를 할 때 두 배열의 대한 비교나 교집합(Intersection), 차집합(Difference)은 정말 많이 사용되는 것 같다. 특히 알고리즘을 풀

soft91.tistory.com

 

.filter() 메소드와 includes() 메소드 사용

//교집합 찾기

const 배열1 = [1,2,3,4,5];
const 배열2 = [1,3,5,7,9];

//두 배열에서 같은 값 찾기

배열1.filter(원소 => 배열2.includes(원소))

 

까지 썼는데 회사 서버가 다운되었다 ㅜㅜㅜㅜㅜ

728x90