일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- linux
- Computer Science
- Spring
- 파이썬
- Baekjoon
- java
- c
- 백준
- C++
- 프로그래머스
- CS
- SECS/GEM
- 스포티파이
- MYSQL
- spring boot
- SW Expert Academy
- SWEA
- python
- SECS-II
- programmers
- Spotify Api
- modern c++
- 회귀
- 자바
- regression
- Gem
- 회원가입
- spotify
- Spring JPA
- SECS
Archives
- Today
- Total
비버놀로지
[Programmers 프로그래머스] 64061 크레인 인형뽑기 게임 본문
728x90
programmers.co.kr/learn/courses/30/lessons/64061
크레인 인형뽑기 게임에서 해당하는 위치의 위에서부터 아래로 내려가면서 인형이 있는곳까지 내려가 인형이 있는 곳 까지 내려갔을 때 위치는 스텍에 쌓아준다.
그렇게 쌓여있는 스텍에 같은 인형이 들어오면 스텍에 있는 가장 위에 인형을 빼주고, 결과값에 1을 더해준다.
링크드리스트를 이용한 풀이법이다.
import java.util.LinkedList;
public class 크레인인형뽑기게임 {
public static void main(String[] args) {
int [][]board = {{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}};
int [] moves = {1,5,3,5,1,2,1,4};
int answer=0;
LinkedList<Integer> stack=new LinkedList<Integer>();
for (int i = 0; i < moves.length; i++) { //세로로 내려가면서 인형의 위치를 찾는다.
int temp=0;
if(!stack.isEmpty()) {
temp=stack.getLast();
}
for (int j = 0; j < board.length; j++) {
if(board[j][moves[i]-1]!=0) {
stack.add(board[j][moves[i]-1]); //찾은 인형을 스텍에 넣는다.
board[j][moves[i]-1]=0;
break;
}
}
if(!stack.isEmpty()&&temp==stack.getLast()) { //같은게 들어오면 인형을 꺼내준다.
stack.pollLast();
stack.pollLast();
answer+=2;
}
}
System.out.println(answer);
}
}
728x90
'ALGORITM > JAVA' 카테고리의 다른 글
[Programmers 프로그래머스] 42576 완주하지 못한 선수 (0) | 2021.01.06 |
---|---|
[Programmers 프로그래머스] 68644 두 개 뽑아서 더하기 (JAVA) (0) | 2021.01.06 |
[SWEA SW Expert Academy] 5658 보물상자 비밀번호 (0) | 2020.12.02 |
[SWEA SW Expert Academy] 1249 보급로 (0) | 2020.12.01 |
[SWEA SW Expert Academy] 4013 특이한 자석 (0) | 2020.12.01 |
Comments