티스토리 뷰
반응형
https://www.acmicpc.net/problem/20057
난이도 : 골드 4
바람이 이동하는 것은 재귀를 이용하여 풀었습니다.
바람이 2번 꺾일 때마다 걸음 수가 1씩 증가하는 것을 규칙으로 움직입니다.
실수하지 않기 위해 wind 메소드의 길이가 매우 길어졌습니다. 가독성을 포기한다면 길이를 줄일 수 있겠네요.
칸마다 이동하며 좌표 값이 정상 범위를 벗어난다면 밖으로 떨어진 것이니 그때마다 out에 더해줬습니다.
전역 변수
int n = 맵의 크기
int map[][] = 문제에서 주어진 값
int dx[], dy[] = 좌표를 이동하기 위한 배열
long out = 밖으로 떨어진 모래의 양
메소드
void main
입력을 받고 중앙부터 바람을 일으킵니다.
(tornado 호출)
void tornado
바람이 이동하는데 문제에서 요청대로 매 칸 모래를 이동시켜줍니다.
걸어가야 하는 길의 길이를 size, 걸어온 칸 count, 바람이 꺾인 횟수 corner를 이용하였습니다.
(tornado 호출)
void wind
문제에서 요구한 대로 모래를 뿌립니다. 현재 방향이 0과 2, 1과 3일 때는 같은 동작을 합니다. 물론 가독성을 포기하고 더 줄일 수 있습니다.
좌표값이 범위를 벗어나면 밖이므로 out에 더해줍니다.
(check 호출)
boolean check
파라미터로 받은 좌표값들이 정상 범위인지 확인합니다.
반응형
'문제풀이 > 백준 && 프로그래머스' 카테고리의 다른 글
[백준 20061] 모노미노도미노 2 (자바) (0) | 2020.10.28 |
---|---|
[백준 20058] 마법사 상어와 파이어스톰 (자바) (6) | 2020.10.22 |
[백준 20056] 마법사 상어와 파이어볼 (자바) (3) | 2020.10.21 |
[백준 20055] 컨베이어 벨트 위의 로봇 (자바) (0) | 2020.10.21 |
[백준 17081] RPG Extreme (자바) (2) | 2020.10.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 구현
- dfs
- 면접
- 신입
- 프로그래머스
- 레벨4
- 플레
- 브루트포스
- 취준
- 백준
- 네이버
- 스프링부트
- 게시판
- 카카오
- 후기
- 레벨2
- 프로젝트
- 실버
- 트리
- 시뮬레이션
- 그래프이론
- 자바
- 자료구조
- 레벨3
- 그래프탐색
- 코딩테스트
- 최소스패닝트리
- 골드
- BFS
- 스프링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함