-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakeAhamburger.js
62 lines (54 loc) · 1.35 KB
/
makeAhamburger.js
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
// 햄버거 만들기
// 1, 시간초과
function solution(ingredient) {
let answer = 0;
ingredient = ingredient.join("");
for (;;) {
if (ingredient.includes("1231")) {
ingredient = ingredient.replace(/1231/, "");
++answer;
} else {
return answer;
}
}
}
// 2, 성공
function solution1(ingredient) {
let hamburger = [];
let answer = 0;
for (let i = 0; i < ingredient.length; i++) {
hamburger.push(ingredient[i]);
if (hamburger.length >= 4) {
let len = hamburger.length;
let result = [];
result.push(hamburger[len - 4]);
result.push(hamburger[len - 3]);
result.push(hamburger[len - 2]);
result.push(hamburger[len - 1]);
if (result.join("") === "1231") {
++answer;
hamburger.pop();
hamburger.pop();
hamburger.pop();
hamburger.pop();
}
}
}
return answer;
}
// 다른 사람 코드 참조
function solution2(ingredient) {
let answer = 0;
for (let i = 0; i < ingredient.length; i++) {
if (ingredient.slice(i, i + 4).join("") === "1231") {
answer++;
i -= 3;
ingredient.splice(i, 4);
}
}
return answer;
}
let ingredient1 = [2, 1, 1, 2, 3, 1, 2, 3, 1]; // 2
let ingredient2 = [1, 3, 2, 1, 2, 1, 3, 1, 2]; // 0
console.log('test1', solution1(ingredient1));
console.log('test2', solution2(ingredient2));