인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

Do Eun Kim님의 프로필 이미지
Do Eun Kim

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

3. 크레인 인형뽑기(스택)

안녕하세요. 이런 방식으로 풀었는데 한번 검토 부탁드려도 될까요?

작성

·

178

0

안녕하세요. 저는 2차원 배열을 순회하면서 0의 개수를 센 최대 높이 배열을 만든 다음에 스택 로직을 적용하여 아래와 같은 방법으로 작성했습니다.

혹시 이 코드에 대해서 피드백 해주실 수 있을까요? 엣지 케이스가 있을 수 있을까요?

function solution(board, moves) {
	let answer = 0;
	const len = board.length;
	const maxHeights = new Array(len).fill(0);
	const stack = [];

	for (let row of board) {
		for (let n = 0; n < len; n++) {
			if (row[n] === 0) {
				maxHeights[n]++;
			}
		}
	}

	for (let n of moves) {
		let idx = n - 1;
		let mh = maxHeights[idx];
		if (mh !== len) {
			let selectedVal = board[mh][idx];
			let lastValInStack = stack[stack.length - 1];
			if (lastValInStack === selectedVal) {
				stack.pop();
				answer += 2;
			} else {
				stack.push(selectedVal);
			}
			maxHeights[idx]++;
		}
	}

	return answer;
}

solution([[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]], [1,5,3,5,1,2,1,4]);

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

잘하신 코드입니다!!

Do Eun Kim님의 프로필 이미지
Do Eun Kim

작성한 질문수

질문하기