줌코딩의 코딩일기
Zoom in Coding
-
(백준 알고리즘 문제풀이) 1976번 여행 가자
문제 문제 링크 문제 접근 여행 경로를 순서대로 진행하다가 다음 위치로 이동하는 것이 불가능한지 여부를 확인해야한다. 그 때 필요한 것은 둘 사이에 경로가 있는가를 확인해야한다. 그를 위해 플로이드 와샬 알고리즘을 이용해서 미리 모든 여행지에서 모든 여행지로 갈 수 있는 경로를 찾아놓는다. 그 후 여행지를 둘씩 확인하면서 경로가 있는지 봐준다. 코드...
-
(백준 알고리즘 문제풀이) 14501번 퇴사
문제 문제 링크 문제 접근 이 문제는 디피를 이용해서 풀면 쉽게 해결할 수 있는 문제이다. 첫 날부터 마지막 날까지 하나하나 값을 갱신하면서 마무리한다. 상담 기간 최대 5일 이기 때문에 각 날짜에 대해서 1,2,3,4,5일 전에 상담을 시작한 내역이 있다면 해당 날짜의 금액에 상담비용을 더한다. 이때 1~5일전 값 중에 제일 큰 친구를...
-
(백준 알고리즘 문제풀이) 12015번 가장 큰 증가하는 부분 수열
문제 문제 링크 문제 접근 첫 수부터 돌면서 하나씩 값을 찾아준다. 값은 이때 각 수의 위치에서 뒤로 돌면서 현재 수보다 작은 애들의 sum 값이 큰 작은 애를 찾아서 현재 수와 더해서 넣어준다. 코드 #include <cstdio> int n, a[1001], sum[1001], MAX; int main(){ scanf("%d", &n); for(int i = 0; i <...
-
(백준 알고리즘 문제풀이) 4195번 친구 네트워크
문제 문제 링크 문제 접근 이 문제는 두개의 친구 그룹이 하나로 더해질 때의 인원수를 세는 문제이다. 이 문제는 Union-Find로 접근이 가능하다. 두 친구의 그룹이 Union할 때 각 group의 수를 더해서 출력해주면 된다. 여기서 주의할 점은 두 친구의 parent가 같은 원소라면 Union하지 않는다. 이름이 string 값으로 주어지게 되는데 이름을 map을 이용해서...
-
(백준 알고리즘 문제풀이) 1766번 문제집
문제 문제 링크 문제 접근 이 문제에서 문제집을 잘 풀기 위해서는 푸는 순서가 정해져 있다. 먼저, 먼저 풀 문제가 없어진 친구에 대해서는 먼저 풀되 먼저 풀 문제가 없어진 문제가 여러개인 경우 index 작은 문제(쉬운 문제)를 먼저 푼다. 먼저 풀어야 하는 문제가 있다는 점에서 문제간에 위존성이 있기에 이 문제는 위상정렬로 풀...