프로그래머스 64061 크레인 인형뽑기 게임 JAVA

sundays·2022년 10월 4일
0

문제

크레인 인형뽑기 게임

풀이

board 를 한번에 돌고 bucket 에 넣은 데이터를 한번에 계산해서 답을 도출하려고 했는데 생각해보니까 이문제서는 bucket안에 같은 숫자가 연달아 홀수로 겹쳐 나오는경우는 생각하지 않는다. 왜냐하면 이 문제에서 bucket은

그림과 같이 겹치자 마자 바로 사라질 것이기 때문이다. 테케를 전부 다 보진 못했지만 아마 짝수로만 출력될 것이다

  1. 가장 상위에 위치한 이모티콘 중 moves 의 원소에 해당하는 값을 도출한다
		for (int move : moves) {
            int k = move - 1; // 인덱스 재정의
            for (int i = 0; i < board.length; i++) {
                if (board[i][k] > 0) {
                	// 가장 상위에 위치한 k 번째에 값이 들어 있는 경우
                }
            }
        }
  1. bucket안에 들어있는 값을 비교한다.
				if (board[i][k] > 0) {
                    if (!bucket.isEmpty() && bucket.peek() == board[i][k]) {
                        bucket.pop();
                        answer += 2;
                    } else {
                        bucket.push(board[i][k]);
                    }
                    board[i][k] = 0;
                    break;
                }
  • bucket은 stack구조로 이루어 져서 가장 상위에 위치한 값과 비교하여 같으면 pop을 해주고 정답에 2를 출력한다
  • 만약 비어있거나 값이 같을 경우는 bucket에 쌓인다
  • board[i][k] 를 초기화 시켜준다

전체 코드

전체 코드

profile
develop life

0개의 댓글