티스토리 뷰
반응형
https://www.acmicpc.net/problem/12100
난이도 : 골드 2
난이도에 비해 어렵지 않은 문제였습니다.
백트래킹으로 구현을 하면 풀 수 있습니다.
총 5번의 이동으로 가장 큰 수를 구해야 하므로 각 이동(상, 하, 좌, 우)을 백트래킹을 이용해 구현했습니다.
전역 변수
n = 맵의 크기
answer = 5번의 이동이 끝났을 때의 가장 큰 값
map = 게임 판
메소드
void main
입력을 받고 게임을 시작한 후 answer를 출력합니다.
(game 호출)
void game
총 5번의 동작을 합니다.
매 동작 전 백트래킹이 가능하도록 map을 copy 배열에 복사해둡니다.
동작 후 재귀가 끝났을 때 copy배열의 값을 map으로 불러와 기존 값을 복구합니다.
void move
dir의 값에 따라 동작을 달리합니다.
0 - 상, 1 - 하, 2 - 좌, 3 - 우입니다.
index는 값을 넣을 위치를 가리키고, block은 최근 블록의 수를 저장합니다.
2 2 4 0을 위로 몰아넣는 동작 과정을 그림으로 나타낸 것입니다.
void findMax
map을 순회하며 가장 큰 수를 찾아냅니다.
반응형
'문제풀이 > 백준 && 프로그래머스' 카테고리의 다른 글
[백준 5427] 불 (자바) (3) | 2020.10.08 |
---|---|
[백준 5557] 1학년 (자바) (2) | 2020.10.06 |
[백준 2252] 줄 세우기 (자바) (0) | 2020.10.02 |
[프로그래머스] 오픈채팅방 (자바) (0) | 2020.09.27 |
[백준 2493] 탑 (자바) (0) | 2020.09.26 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 카카오
- 게시판
- 레벨2
- 자바
- 실버
- 그래프이론
- 신입
- 최소스패닝트리
- 프로젝트
- 구현
- 스프링부트
- 자료구조
- 트리
- dfs
- 후기
- 시뮬레이션
- 레벨4
- 레벨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 |
글 보관함