티스토리 뷰
반응형
https://www.acmicpc.net/problem/20061
난이도 : 골드 3
테트리스와 비슷하게 구현하면 됩니다.
블록을 놓았을 때 파랑, 초록에 적절히 이동시키고 라인이 채워지면 점수 올리고 연한 부분 처리만 해주면 됩니다.
저는 오타 때문에 꽤 오랜 시간 헤맸네요. 복붙을 할 때에는 정신 바짝 차려서 해야겠습니다.
가독성을 잡기 위해 길이를 포기했기 때문에 디버깅이 쉽지 않네요.
전역 변수
int score = 총 점수
int blue[][], green[][] = 파랑, 초록 배열
함수
void main
입력을 받고 블록을 놓습니다.
(moveBlock, getScore, pushGreen, checkGreen, pushBlue, checkBlue, count 호출)
void moveBlock
1, 2, 3에 맞는 블록을 놓습니다. 블럭이 미리 이동할 곳을 index로 탐색하고 정상 범위의 값이며 빈 곳이라면 블럭을 옮깁니다.
void getScore
초록, 파랑을 돌며 행, 열이 꽉 찬 칸을 찾습니다. 꽉 채워졌다면 점수를 올리고 위에 있는 블록들을 한 칸씩 내립니다.
(cleanGreen, cleanBlue 호출)
void cleanGreen, cleanBlue
현재 줄 위에 있는 블록부터 한 칸씩 밑으로 내립니다.
int checkGreen, checkBlue
연한 칸을 돌면서 몇 줄을 밑으로 내려야 할지 검사합니다.
void pushGreen, pushBlue
check 메소드를 통해 얻은 줄 수만큼 밑으로 내립니다.
int count
초록, 파랑에 남은 블럭 수를 셉니다.
반응형
'문제풀이 > 백준 && 프로그래머스' 카테고리의 다른 글
[백준 1238] 파티 (자바) (0) | 2020.11.02 |
---|---|
[백준 1753] 최단경로 (자바) (0) | 2020.11.02 |
[백준 20058] 마법사 상어와 파이어스톰 (자바) (6) | 2020.10.22 |
[백준 20057] 마법사 상어와 토네이도 (자바) (0) | 2020.10.21 |
[백준 20056] 마법사 상어와 파이어볼 (자바) (3) | 2020.10.21 |
댓글