[boj] 백준 5014 스타트링크 (c++) - BFS
[문제] https://www.acmicpc.net/problem/5014 5014번: 스타트링크 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. www.acmicpc.net [풀이] 수식을 이용할 수도 있지만 BFS를 이용한 풀이도 가능하다. [코드] #include #include #include #include #include #define INF 987654321 using namespace std; int f, s, g, u, d; int visited[1000001] = {0, }; void bfs(){ queue q; visited[s] = true; q.pu..
[boj] 백준 2447 별 찍기 10 (c++) - 재귀
[문제] https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net [풀이] n x n 사각형에 대해 가운데 부분이 공백으로 이루어지는 형태가 반복된다는 것을 알 수 있다. 따라서 이 때 어떤 좌표값이 공백이 되는지를 일반화해야 한다. n이 3이면, (1, 1), (1, 4), (1, 7), (4, 1), (4, 4), (4, 7) 등의 좌표가 공백이 된다. → ( i / 1 ) % 3 == 1 && ( j / 1 ) % 3 =..
[boj] 백준 2096 내려가기 (c++) - dp
[문제] https://www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net [풀이] 동적 프로그래밍 문제. 메모리 제한으로 전부 저장해두지 못하기 때문에 input을 입력받은 즉시 비교해서 최대, 최소값을 저장한다. [코드] #include #include #include #include using namespace std; int n; int input[3]; int min_dp[3]; int max_dp[3]; int main() { ios::sync_with_stdio(..