프로그래머스 221106
햄버거 만들기
실패
function solution(ingredient) {
let count = 0;
if(ingredient.length === 0) {
return 0;
}
for(let i = 0; i < ingredient.length; i++) {
if(ingredient[i] === 1) {
if(ingredient[i+1] === 2) {
if(ingredient[i+2] === 3) {
if(ingredient[i+3] === 1) {
ingredient.splice(i, 4);
count++;
i = 0;
}
}
}
}
}
return count;
}
console.log(solution([2, 1, 1, 2, 3, 1, 2, 3, 1]));
join 으로 문자열로 만든 다음
replace 안됨
slice, indexOf 도 안됨
과한 반복문 x
stack을 이용하라
신고 결과 받기
실패
function solution(id_list, report, k) {
for(let i = 0; i < report.length; i++) {
for(let j = i + 1; j < report.length; j++) {
if(report[i] === report[j]) {
report.splice(j, 1);
i--
}
}
}
console.log(report);
let newReport = [];
for(let i of report) {
newReport.push(i.split(' '));
}
console.log(newReport);
let obj = {};
for(let i in id_list) {
for(let j of newReport) {
if(id_list[i] === j[0]) {
if(!Object.keys(obj).includes(j[1])) {
obj[j[1]] = 0;
}
obj[j[1]]++;
}
}
}
console.log(obj);
let arr = [];
for(let i in obj) {
if(obj[i] >= k) {
for(let j of newReport) {
if(i === j[1]) {
arr.push(j[0]);
}
}
}
}
console.log(arr);
let result = [];
let count = 0;
for(let i of id_list) {
for(let j of arr) {
if(i === j) {
count++;
}
}
let newCount = count;
count = 0;
result.push(newCount);
}
return result;
}
console.log(solution(["muzi", "frodo", "apeach", "neo"],
["muzi frodo","apeach frodo","frodo neo","muzi neo","apeach muzi"], 2));
맞는거 같은데 시간초과
쉬운 문제부터 풀면서 반복문을 줄이는 방법을 알아나가야 겠다.
+
for in 의 i는 문자열 for 문의 j는 숫자이다.
for(let i in report) {
console.log(typeof i); // string
}
for(let j = i + 1; j < report.length; j++) {
console.log(typeof j) // number
}
댓글남기기