본문 바로가기

전체 글361

[BOJ]1766번: 문제집 www.acmicpc.net/problem/1766 문제들 간에 우선순위가 존재하므로 위상 정렬로 해결할 수 있는 문제입니다. 1st. 자기 보다 선행 되어야 하는 문제가 없고 parentCnt[now_problem] == 0 2nd. 난이도는 쉬운 문제부터 풀어야 한다. 두 가지 가중치가 존재하므로 이 두 가지 값을 가중치로 놓는 최소힙을 선언해서 최소힙에서 현재 풀 수 있는 문제 후보부터 뽑아내면 됩니다. 코드: github.com/cotchan/algorithm/blob/main/cpp/BOJ/BOJ1766.cc 2021. 3. 4.
[BOJ]2056번: 작업 www.acmicpc.net/problem/2056 일 사이에 선행관계가 존재하므로 위상정렬로 해결할 수 있습니다. 최종적으로 구해야하는 관계식은 아래와 같습니다. while (현재 작업의 선행작업.size()) realworkTime[현재 작업] = max(realworkTime[현재 작업], realworkTime[선행작업]) realworkTime[현재 작업] += 현재 작업하는데 걸리는 시간 그리고 realworkTime[현재 작업] 값들 중에 max값이 정답이 됩니다. 코드: github.com/cotchan/algorithm/blob/main/cpp/BOJ/BOJ2056.cc 2021. 3. 4.
[코딩테스트 연습] 방문 길이(py) programmers.co.kr/learn/courses/30/lessons/49994 방문했던 '길'을 구해야 하기 때문에 (시작 좌표, 도착 좌표)을 저장함으로써 구할 수 있습니다. 좌표로 저장을 한다면 [st_y][st_x][en_y][en_x] 4차원 배열이 되므로 번거롭습니다. 그래서 저는 그냥 좌표 (y,x)를 하나의 숫자로 표현해서 [ST_숫자][EN_숫자]로 방문했던 길을 표현했습니다. 방문했던 길이를 어떻게 저장할지만 결정하면 해결할 수 있는 문제입니다. 코드: github.com/cotchan/algorithm/blob/main/python/PROGRAMMERS/PG49994.py 2021. 2. 24.
[BOJ]17088번: 등차수열 변환 www.acmicpc.net/problem/17088 주어진 배열을 등차수열로 만들 수 있는지 물어보는 문제입니다. 각 숫자에 +1, -1, 가만히 놔두기 이렇게 세 가지 연산을 할 수 있으므로 배열의 숫자 중 a1과 an, 두 개에 대해서만 세 연산(+1, -1, +0)을 하면 나오는 경우의 수는 3*3으로 9가지가 나옵니다. 그래서 9가지 경우의 수에 대해 아래와 같은 연산을 해보는 겁니다. 1. a1, an 정하기 2. 공차 구하기 3. 기존의 숫자를 가지고 주어진 공차를 가진 등차수열을 만들 수 있는지 체크 4. 3번을 만족하는 경우의 수 중 최소 연산 수를 리턴 코드: github.com/cotchan/algorithm/blob/main/python/BOJ/BOJ17088.py 2021. 2. 23.