[Python] 백준 2583 - 영역 구하기 [Silver1]
·
Baekjoon
출처https://www.acmicpc.net/problem/2583풀이 전략이 문제는 BFS로 풀면 되지만, 한 가지 까다로운 점은 Array의 index로 접근을 할 수 있지만 Array의 index는 좌상단에서 우하단 방향으로 커지는 반면 XY좌표계는 좌하단에서 우상단으로 커지기 때문에 Array로 계산을 할 때 XY 좌표계로 변환을 해주고 구해야 한다.이 점을 제외하면 무난무난한 문제이기 때문에 구하면 된다.풀이위의 풀이에 대해 설명을 하자면,빨간 형광펜으로 칠한 부분이 문제에서 예시로 주어진 부분이고, 빨간 점이 입력 값의 좌표(XY 좌표계), 배열 내부에 파란 색으로 적은 숫자가 배열의 index이다.빨간 점(X,Y)과 배열의 index를 비교해서 관계식을 찾는 것이 첫 번째 목표이다.따라서 ..
[C++] 백준 13699 - 점화식 [Silver 4]
·
Baekjoon
출처https://www.acmicpc.net/problem/13699풀이 전략문제에서 주어진 대로 점화식을 그대로 구현하기만 하면 된다.점화식이 조합에서 파스칼삼각형처럼 대칭을 이루고 있으므로 하나는 왼쪽에서, 다른 하나는 오른쪽에서 움직이면서 F[n]에 저장해놓으면 된다.소스 코드#include #include using namespace std;long long ignition(int n){ long long F[n+1]; F[0]=1; for(int i=1;i>N; long long result=ignition(N); cout결과
[C++] 백준 1865 웜홀 [Gold3]
·
Baekjoon
https://www.acmicpc.net/problem/1865풀이 전략먼저 문제를 해석해보면 TC개의 Test case가 있고 각각의 Test case는 N개의 지점, M개의 양방향 도로, W개의 웜홀이 존재한다. 이 때 웜홀의 경우는 단방향 도로이고 웜홀을 통과하게 되면 시간이 거꾸로 흐르게 된다. 그렇기 때문에 음수 Cycle이 존재할 가능성이 존재하기 때문에 BellmanFord알고리즘을 이용하여야 한다. (Dijkstra알고리즘의 경우 음수 사이클을 고려하지 않는다.)BellmanFord알고리즘을 이용하여 시간(cost)을 구하고 만약 한 사이클을 돌았는데 cost의 총합이 음수인 경우 문제에서 구하고자 하는 “출발을 하였을 때보다 시간이 되돌아가 있는 경우”에 해당하기 때문에 YES를 출력하..