prestudy-week2

Sunghee Kim·2022년 4월 25일
0

Assignment
시장을 봐왔는데 바구니를 보니 곰팡이가 피어있습니다.

바구니에서 곰팡이를 제거하는 함수를 작성해주세요!

let basket = [['양파','곰팡이'],['곰팡이','빵','딸기잼'],['귤','곰팡이','사과']];

removeGerm(basket) // [ [ '양파' ], [ '빵', '딸기잼' ], [ '귤', '사과' ] ];

function removeGerm(arr) {
for(let i=0;i<arr.length;i++){
for(let j=0;j<arr[i].length;j++){
if(arr[i][j]==='곰팡이'){
arr[i].splice(j,1)
j--;
}
}
}
return arr;
}
다차원배열에 접근하기 위해 2중 for문을 작성한다.

알고리즘

1.다차원배열-2중 for문
2.arr[i][j]가 '곰팡이'와 같다면 splice를 해준다.
3.splice를 해줄 때, '곰팡이'가 몇 번째 요소에 있을지 모르니 j를 시작점으로 두고 한개의 요소를 지운다.
4.여러 개의 '곰팡이'가 있을 경우를 생각하여 j--를 하여 한번 더 조건을 체크해준다.
splice()는 원본배열을 바꾸니까 만약 ['곰팡이','곰팡이','곰팡이']일 경우 j의 0번째 곰팡이를 지우고 나면 두번째 곰팡이가 0번째로 오게 되면 j++를 하게 되면 체크를 못하고 그냥 지나가게 된다.
혹시 모를 edge case를 위해 j--를 해서 한번더 0으로 돌아가서 체크를 한다.

profile
개발하는 스트롱맘

0개의 댓글