쾌락없는 책임 (공부)/알고리즘 문제풀이
-
[Algorithm] 프로그래머스 2 x n 타일링, C++, DP쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 2. 23. 15:32
코딩테스트 연습 - 2 x n 타일링 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 programmers.co.kr #include #include using namespace std; const int mod = 1000000007; int solution(int n) { int answer = 0; vector wayCount(n+1); wayCount[0] = 0; wayCount[1] = 1; wayCount[2] = 2; for(unsigned i = 3; i
-
[Algorithm] 프로그래머스 가장 먼 노드 - C++, BFS쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 2. 23. 12:31
코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr #include #include #include #include using namespace std; int solution(int n, vector edge) { int answer = 0; int maxDistance = 0; vector distance(n+1); vector visit(n+1); for(unsigned i = 0; i = nextCost){ visit[nextPos] = true; distance[nextPos] = nextCost; q.push(make_pair(nextPos, nextCost)); } } ..
-
[Algorithm] 백준 16197 - 두 동전, C++, DFS쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 2. 22. 18:38
16197번: 두 동전 N×M 크기의 보드와 4개의 버튼으로 이루어진 게임이 있다. 보드는 1×1크기의 정사각형 칸으로 나누어져 있고, 각각의 칸은 비어있거나, 벽이다. 두 개의 빈 칸에는 동전이 하나씩 놓여져 있고, www.acmicpc.net #include #include #include using namespace std; int boardH, boardW; char board[21][21]; int moveX[4] = {0, 0, 1, -1}; int moveY[4] = {1, -1, 0, 0}; vector coinPos; // height, weight int answer = 20; bool isCoinOut(const pair& coin){ if(coin.first < 0 || coin.s..
-
[Algorithm] 백준 14938 - 서강그라운드, C++, 다익스트라쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 2. 10. 13:11
14938번: 서강그라운드 예은이는 요즘 가장 인기가 있는 게임 서강그라운드를 즐기고 있다. 서강그라운드는 여러 지역중 하나의 지역에 낙하산을 타고 낙하하여, 그 지역에 떨어져 있는 아이템들을 이용해 서바이벌을 www.acmicpc.net #include #include #include #include #include using namespace std; int n, m, r; // 지역, 수색범위, 길의 수 int item_in_area[101]; int cost_from_start[101]; vector edges[101]; void Yeeun_Search(int start_pos){ // init array for(int i = 1; i cost_from_start[cur] + next_cost){..
-
백준 14284 - 간선 이어가기2, C++, 다익스트라쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 1. 16. 22:58
14284번: 간선 이어가기 2 정점 n개, 0개의 간선으로 이루어진 무방향 그래프가 주어진다. 그리고 m개의 가중치 간선의 정보가 있는 간선리스트가 주어진다. 간선리스트에 있는 간선 하나씩 그래프에 추가해 나갈 것이다. www.acmicpc.net #include #include #include #include using namespace std; int n, m, s, t; vector edges[5001]; int cost_from_start[5001]; void Djik(){ priority_queue q; // cost, vertex q.push({0, s}); cost_from_start[s] = 0; while(!q.empty()){ int cur = q.top().second; int co..
-
백준 16118 - 달빛 여우, C++ ,BFS쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 1. 9. 22:43
16118번: 달빛 여우 첫 줄에 나무 그루터기의 개수와 오솔길의 개수를 의미하는 정수 N, M(2 ≤ N ≤ 4,000, 1 ≤ M ≤ 100,000)이 주어진다. 두 번째 줄부터 M개의 줄에 걸쳐 각 줄에 세 개의 정수 a, b, d(1 ≤ a, b ≤ N, a ≠ b www.acmicpc.net #include #include #include #include #include using namespace std; // slow wolf n >> m; for(unsigned i = 0; i > from >> to >> cost; edges[from].push_back(make_pair(to, cost*2)); edges[to].push_b..
-
백준 2021 - 최소 환승 경로, C++,쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 1. 5. 22:45
2021번: 최소 환승 경로 첫째 줄에 역의 개수 N(1≤N≤100,000), 노선의 개수 L(1≤L≤100,000)이 주어진다. 다음 L개의 줄에는 각 노선이 지나는 역이 순서대로 주어지며 각 줄의 마지막에는 -1이 주어진다. 마지막 줄에는 출발 www.acmicpc.net #include #include #include #include using namespace std; int n, l; int start_station, end_station; int station[200001]; vector route[200001]; // 호선 - 역 연결 벡터 int Search_Station(){ queue q; station[start_station] = 0; q.push(start_station); whi..
-
백준 5214 - 환승, C++, BFS쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 1. 5. 22:45
5214번: 환승 첫째 줄에 역의 수 N과 한 하이퍼튜브가 서로 연결하는 역의 개수 K, 하이퍼튜브의 개수 M이 주어진다. (1 ≤ N ≤ 100,000, 1 ≤ K, M ≤ 1000) 다음 M개 줄에는 하이퍼튜브의 정보가 한 줄에 하나씩 주어 www.acmicpc.net #include #include #include using namespace std; int n, k, m; int station_count[101001]; vector station[101001]; int Search_Station_Count(){ queue q; q.push(1); station_count[1] = 1; while(!q.empty()){ int cur_station = q.front(); q.pop(); if(cur..