줌코딩의 코딩일기
Zoom in Coding
-
(백준 알고리즘 문제풀이) 1935번 후위 표기식2
문제 문제 링크 문제 접근 이 문제는 후위 순회를 떠올려서 처음에는 트리를 이용하려고 했으나 생각해보니 연산자를 만났을 때 그 전의 연산된 두 수를 연산해주기만 하며 된다. 이를 위해 스택을 사용했다. 코드 #include <cstdio> #include <stack> using namespace std; int arr[101], n, cnt; char s[101]; int main(){ scanf("%d", &n); scanf("%s", s);...
-
(백준 알고리즘 문제풀이) 1916번 최소비용 구하기
문제 문제 링크 문제 접근 이 문제는 가장 작은 바용으로 도착지점까지 도착해야 하는 문제로 다익스트라를 이용해서 쉽게 풀었다! priority queue가 내림 차순으로 sorting 되기 때문에 비용에 음수를 취해 사용했다. 코드 #include <cstdio> #include <vector> #include <queue> using namespace std; #define ll long long #define pll pair<ll, ll> ll ans, cnt,...
-
(백준 알고리즘 문제풀이) 1647번 도시 분할 계획
문제 문제 링크 문제 접근 이 문제는 mst를 응용하면 풀 수 있을 것 이라 생각했다. 최소값으로 도시를 두개 만든다면 최소값으로 mst를 만든 다음에 거기서 edge를 하나 빼면 된다. 여기서 빠지는 edge는 유지비가 가장 큰 edge일 것임으로 n - 1개가 아닌 n - 2개 edge를 받으면 된다. 코드 #include <cstdio> #include...
-
(백준 알고리즘 문제풀이) 1516번 게임 개발
문제 문제 링크 문제 접근 이 문제는 건물을 짓는데 의존성이 있다는 이야기를 보고 바로 위상 정렬을 떠올렸다. 인풋을 받을 때 incoming edge의 수를 기억하도록 하고 의존성에 대한 edge를 저장해서 하나씩 꺼내보도록 하였다. 다음을 n번 반복한다. incoming edge의 수가 0이 되면 그 건물이 지을 수 있을 때 이므로 처음부터 이런 친구를...
-
(백준 알고리즘 문제풀이) 1138번 한 줄로 서기
문제 문제 링크 문제 접근 이 문제는 위상정렬로 풀 수 있는 듯한 문제였다. n번 만큼 다음과정을 반복한다. 처음부터 보며 arr 값이 0이면서 아직 출력하지 않은 사람을 찾아 출력해주고 그 이전에 있는 모든 사람의 값을 하나씩 빼주고 이미 출력했음을 표시해준다. 코드 #include <cstdio> int n, arr[11], visited[11]; int main(){ scanf("%d", &n);...