수포자에 대한 반복되는 틀을 저장한뒤에 함수로 저장한다음 뽑아내는 식으로 만들었다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
//1번 수포자 1,2,3,4,5,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, 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,3,3,1,1,2,2,4,4,5,5 3-1-2-4-5-3-1-2-4-5
function solution(answers) {
var answer = [];
//1번 수포자
let count_1 = {
name : 1,
val:count1(answers)
};
//2번 수포자
let count_2 = {
name : 2,
val:count2(answers)
};
let count_3 = {
name : 3,
val:count3(answers)
};
let result = [count_1,count_2,count_3];
//정렬
result = result.sort(function(a,b){ //mutable 그냥써도 result 가 바뀐다...
return b.val - a.val ; //내림차순...
});
//필터
result = result.filter(function(element,index,array){ // immutable 바뀌지않기때문에 저장을 해줘야한다..
return Number(element.val) === Number(array[0].val);
})
//정렬
result = result.sort(function(a,b){
return a.name - b.name; //오름차순
})
//바꾸기
result = result.map(function(element){
return element.name;
})
answer = result;
return answer;
}
//1번 수포자
function count1(num){
let numbers = [1,2,3,4,5];
let count_1 = 0;
for(let i=0;i<num.length;i++){
let count = i%numbers.length;
if(numbers[count] === num[i]){
count_1++;
}
}
return count_1;
}
//2번 수포자
function count2(num){
let numbers = [2,1,2,3,2,4,2,5];
let count_2 = 0;
for(let i=0;i<num.length;i++){
let count = i%numbers.length;
if(numbers[count] === num[i]){
count_2++;
}
}
return count_2;
}
//3번 수포자
function count3(num){
let numbers = [3,3,1,1,2,2,4,4,5,5];
let count_3 = 0;
for(let i=0;i<num.length;i++){
let count = i%numbers.length;
if(numbers[count] === num[i]){
count_3++;
}
}
return count_3;
}
|
cs |
'알고리즘구현능력 > 문제해결능력' 카테고리의 다른 글
[javascript] 프로그래머스/ 체육복 (2) | 2019.11.22 |
---|---|
[javascript] 프로그래머스/문자열 압축 문제.. (0) | 2019.11.22 |
[javascript] 프로그래머스/베스트앨범 (0) | 2019.11.21 |
[java] 백준/2875 대회or인턴 (0) | 2019.06.08 |
[java] 백준/2271 로프 (0) | 2019.06.07 |