Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 웹프로그래밍
- 우아한테크캠프
- 단위테스트
- 우아한형제들
- 백준
- 데이터베이스
- Java
- TypeScript
- Vue
- JavaScript
- JPA
- DFS
- SQL
- 알고리즘
- framework
- 탐색알고리즘
- Database
- Vue.js
- codeground
- Spring
- springboot
- 연습문제
- Backtracking
- 프레임워크
- mobx
- BAEKJOON
- Algorithm
- BOJ
- BFS
- react
Archives
- Today
- Total
설모의 기록
[백준 14890] 경사로 본문
이 문제는 높이 차이가 1이고 L만큼 평평한 곳에 경사로를 설치하는 문제입니다. map 그림만 보고 dfs, bfs 문제라고 예상했는데 그냥 이중포문 문제였네요!
위의 그림과 같은 땅이 있을 때, L = 2 라고 주어졌습니다. 높이가 차이나는 곳은 그 차이가 1이여야 하며, 주어진 조건에 맞게 경사로를 설치할 수 있어야 합니다. 그림에서는 초록색으로 표시한 부분이 지나갈 수 있는 길입니다.
길은 가로와 세로만 생각하면 되니까 편하게 배열 두 개를 선언하고 i, j 만 바꿔서 저장한 후에 똑같은 로직을 사용했습니다. checkBuild 함수에서는 받은 배열의 index 에 저장된 길이 지나갈 수 있는지를 확인합니다. 지나갈 수 없다면 return을, 지나갈 수 있다면 result에 +1 을 하는 방식입니다. slop 배열은 해당 인덱스에 경사로를 설치 했는지 안했는지를 알려주는 boolean 배열입니다.
저는 0 ~ (N - 1) 까지 해당 인덱스와 다음 인덱스가 다르고 그 차이가 1일때만 검사했습니다. 또한, 그 차이가 1이라면 해당 인덱스부터 경사로를 설치하는 것이고, 그 차이가 -1이라면 해당 인덱스의 다음부터 경사로를 설치하는 것입니다. 인덱스 관리 주의해주세요! 그래서 각각 L번만큼 for문을 돌면서 경사로를 설치할 수 있는 곳인지를 검사하게 됩니다.
'알고리즘' 카테고리의 다른 글
[백준 14502] 연구소 (0) | 2018.04.14 |
---|---|
[백준 14503] 로봇청소기 (1) | 2018.04.14 |
[백준 14891] 톱니바퀴 (2) | 2018.04.11 |
[codeground 연습문제 4] 다트게임 (0) | 2018.04.10 |
[codeground 연습문제 3] 시험공부 (0) | 2018.04.10 |