그냥 보자마자 푸는게 오래걸리겠다 싶어서 포기해버렸던 문제였는데
다시 풀고나니 10분도 안되서 풀어가지고 정말 찌인하게 현타가 왔던 문제였다.
저번주 파트너(옆자리앉고, 같이 매일 밥먹는)분에게 문제를 너무 어렵게 생각해서 시도를 못하는 경우가 발견되는 것 같다. 라는 지적을 들었는데.... 그게 내 발목을 잡았다 졸라 간단한건데
2차원 배열이라고 해서 걍 어 오래걸리겠네 이거 풀고 있으면 시간내로 다른거 못풀겠다 라고 포기함....
아무튼 문제다.
배열 속 A가 존재하는 위치를 배열로 출력해주세요.
다중배열의 형태로 존재합니다.
A가 여러개 있을 경우 다중 배열
한개만 있을 경우 단일 배열
아무것도 없을 경우 빈배열을 반환해주세요.
arr = [
["B", "B", "B", "A"],
["B", "B", "A", "B"],
["B", "B", "B", "B"],
["B", "A", "B", "B"]
]
[[ 0, 3 ], [1, 2], [3, 1]]
function findGold(arr) {
let arr2 = [];
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr.length; j++) {
arr[i][j] === "B" ? arr2.push([i, j]) : [];
}
}
if (arr2.length === 1) {
return arr2[0];
} else {
return arr2;
}
}
한개만 있으면
인덱스 0번 다중 배열 상태인데 딱 한개만 빼기
지금은 배열의 길이가 4개고 속의 요소고 4개라서 arr.length라는 문제풀이가 가능했다.
근데 배열의 길이와 요소의 갯수가 서로 다르거나 요소의 갯수가 홀로 다르다면....어떻게 풀어야하는지 생각이 안난다;
다중배열로 되어있는 형태를 모조리 분해해서 배열 단위로 구조를 분해해서
그 배열에 새로운 이름을 달아줘서 그 배열의 길이만큼 진행을 해야하는건지 으...으음.....
생각을 좀 해봐야할 것 같다.
for (let j = 0; j < arr[i].length; j++)
그냥 포문 돌아갈때 arr.length말고 [i]값 넣어주면 해결할 수 있었다 ㅎ.ㅎ