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 | 29 | 30 | 31 |
Tags
- boj 2206
- 2636
- 백준 1697
- boj 1503
- 2167
- boj 1806
- 백준 1806
- 백준 2636
- 10800
- 백준 2470
- 백준 2206
- boj 2470
- 백준 10800
- boj 2667
- 백준 2635
- 백준 2108
- boj 2661
- boj 1697
- boj 2167
- 백준 2167
- 백준 1503
- boj 2178
- boj 19238
- boj 10800
- 백준 2178
- boj 2635
- 백준 2661
- boj 2636
- boj 2108
- 백준 19238
Archives
- Today
- Total
말랑말랑한 개발자 이야기
[백준 20152번] Game Addiction 본문
[백준 20152번] Game Addiction
문제
강산이는 심각한 게임 중독자이기 때문에 날씨에 상관없이 매일 PC방을 간다.
최근에 폭우로 인해 일부 지역이 침수되어 침수된 지역으로는 이동할 수 없게 되었다. 하지만 강산이는 출석 이벤트를 위해 하루도 빠짐없이 PC방을 가야 한다.
강산이는 PC방까지 상, 하, 좌, 우 방향으로만 이동하며, 한 번 이동할 때의 거리는 1이다. 또한, 강산이는 게임을 빨리하러 가야 하기 때문에 집에서 PC방까지 최단경로로 움직인다.
강산이의 집의 좌표 (H, H)와 PC방의 좌표 (N, N)이 주어지고 좌표평면 위 (x, y)에서 y > x인 곳은 침수되었다고 할 때, 강산이가 침수된 지역을 피해서 PC방까지 갈 수 있는 경로의 개수를 구하라.
단, PC방의 좌표가 집의 좌표 같은 경우 경로는 1가지라고 한다.
입력
첫째 줄에 집과 PC방의 좌표 (H, H), (N, N) 을 나타내는 두 정수 H, N (0 ≤ H, N ≤ 30) 이 차례로 주어진다.
출력
집에서 PC방까지 갈 수 있는 경로의 개수를 출력한다.
풀이
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int H, N;
cin >> H >> N;
long long arr[31][31]={0,};
for(int i=0;i<31;i++) arr[0][i] = 1;
for(int i=1;i<31;i++){
for(int j=i;j<31;j++){
arr[i][j] = arr[i-1][j] + arr[i][j-1];
}
}
int k = abs(H-N);
cout << arr[k][k];
return 0;
}
쉬운 문제이지만 문제를 잘 읽자는 생각에서 포스팅해 본다. 문제를 대충 읽어서 처음에 BFS로 코딩하다가 시간만 날렸다.
'알고리즘 > 백준' 카테고리의 다른 글
[백준 10775번] 공항 (0) | 2021.06.18 |
---|---|
[백준 16562번] 친구비 (0) | 2021.06.18 |
[백준 17951번] 흩날리는 시험지 속에서 내 평점이 느껴진거야 (0) | 2021.06.18 |
[백준 16139번] 인간-컴퓨터 상호작용 (0) | 2021.06.18 |
[백준 16507번] 어두운 건 무서워 (0) | 2021.06.18 |