Thief of Wealth
11404 플로이드
개발/알고리즘 2020. 9. 29. 22:50

www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n(1 ≤ n ≤ 100)이 주어지고 둘째 줄에는 버스의 개수 m(1 ≤ m ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 � www.acmicpc.net 아주아주아주 기초적인 플로이드 문제이다. 문제를 읽는순간 플로이드와샬 코드를 떠올릴 수 있어야 한다. 하지만 마자막에 "갈수없는 경로에는 0을 출력한다"를 보지 않았다면 98%에서 틀렸습니다를 볼 것이다. 이번 하반기 11번가 코딩테스트도 매우쉬웠으나 아주 사소한 예외처리 히든 테케때문에 많이들 털렸다고 한다 주의하자! import sys input = sys.stdin.readl..

1389 케빈 베이컨의 6단계 법칙
개발/알고리즘 2020. 9. 29. 01:07

www.acmicpc.net/problem/1389 1389번: 케빈 베이컨의 6단계 법칙 첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻�� www.acmicpc.net 단순 플로이드 워셜 문제이며 거리는 무조건 1이고 양방향 간선을 생각하면 쉽다. m자리에 n을 넣어서 1시간 넘게 고민하고 5번틀렸던 문제로 너무 억울했다. 앞으로는 입력단도 꼼꼼히 보자 import sys input = sys.stdin.readline n,m = map(int, input().rstrip().split(" ")) INF = int(1e9) ..

11403 경로 찾기
개발/알고리즘 2020. 9. 28. 02:15

www.acmicpc.net/problem/11403 11403번: 경로 찾기 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 경로가 있는지 없는지 구하는 프로그램을 작성하시오. www.acmicpc.net 모든 지점에서 모든 경로에 대한 최소거리를 구하는 알고리즘은 플로이드 워셜 알고리즘이다. O(N^3) 인 특징이 있으며 DP이다. 가장 중요한 부분인 3중 반복문 구문을 헷갈리면 안된다. for i in range(n): for j in range(n): for k in range(n): if(graph[i][k]+graph[k][j] == 2 or graph[i][j] != 0): graph[i][j] = 1 for k in range(n): for ..

플로이드 워셜 알고리즘
개발/알고리즘 2020. 9. 28. 01:08

출처: 이것이 취업을 위한 코딩테스트다. 다익스트라 알고리즘은 '한 지점에서 다른 특정 지점까지의 최단 경로를 구해야 하는 경우'에 사용할 수 있는 최단 경로 알고리즘이다. 플로이드워셜 알고리즘은 '모든 지점에서 다른 모든 지점까지의 최단경로를 모두 구해야 하는 경우'에 사용할 수 있는 알고리즘이다. 다익스트라 알고리즘은 단계마다 최단거리를 가지는 노드를 하나씩 반복적으로 선택한다. 그리고 해당 노드를 거쳐가는 경로를 확인하며, 최단거리 테이블을 갱신하는 방식으로 동작한다. 플로이드워셜 알고리즘 또한 단계마다 '거쳐가는 노드' 를 기준으로 알고리즘을 수행한다. 하지만 매번 방문하지 않은 노드중에서 최단거리를 갖는 노드를 찾을 필요가 없다는 점이 다르다. 노드의 개수가 N개일때, 알고리즘 상으로 N번의 단..

11052 카드 구매하기
개발/알고리즘 2020. 9. 28. 00:27

www.acmicpc.net/problem/11052 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 아주 단순한 dp문제이다. 하지만 기억이 나지 않는다면 틀릴 수 밖에 없다. dp[i]를 i개의 카드를 구매할 때 지불할 수 있는 최대 비용이라고 정의한다면 1인경우에는 1 뿐이므로 dp[1] = cardPack[1] 일 것이고 2인경우에는 1+1, 2 3인 경우에는 1+1+1, 2+1, 3 4인 경우에는 1+1+1+1, 2+1+1, 2+2, 3+1, 4 5인 경우에는 1+1+1+1+1, 2+1+1+1, 2+2+1, ..

Mac git 실행시 You have not agreed to the Xcode license agreements.
개발/Mac 2020. 9. 27. 11:04

You have not agreed to the Xcode license agreements. You must agree to both license agreements below in order to use Xcode. Hit the Return key to view the license agreements at '/Applications/Xcode.app/Contents/Resources/English.lproj/License.rtf' Mac에서 git init을 입력했을때 나오는 에러이다. 보통 초기화된 맥북에서 자주 발견되는 듯 하다. 해결방법은 다음과 같다. 1. sudo xcode-select --reset 2. 앱스토어에서 Xcode를 다운받아서 실행한다. 3. terminal을 열고 다음 ..

VBA 기초 간단정리
개발/RPA 2020. 9. 26. 22:42

이미 몇년전에 잠시 배우고 더이상 안써본 언어이지만, 지원하고 싶은 회사의 직무가 생겨서 도전적인 마음으로 다시 복습에 임한다! 솔직히 VBA보단 python이 훨씬 편하지만 다시 복습해두면 나중에라도 다시 필요해질때 유리할것이라는 판단이든다. 이글은 wikidocs.net/43982 를 기반으로 작성되었다. 주로 google spread sheet를 이용하나 VBA라기보다는 매크로 녹화를 통해 javascript 변환을 하고 실행시켜주는 구조라서 VBA를 배우기 어렵기 때문에 정석대로 MS Excel을 통해 작성한다. 다행히 이번에 첫 지급받은 업무용기기에 ms office가 자동으로 깔려있었다. * Mac에서 ms office VBA 에디터는 자동완성을 지원하지 않는것같다. - Sub ~ End Su..

14501 퇴사
개발/알고리즘 2020. 9. 26. 21:18

www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 유명한 DP문제로 점화식을 세우는 것이 힘든 문제다. 간단히 말해서, 오늘을 근무할것인가, 말것인가를 선택하는 문제로 바꿔 생각할 수 있으며, dp[i]는 i번째날 얻을 수 있는 최대 소득으로 정의한 후 접근하면 풀리는 문제이다. 물론 나도 그렇게 능숙하진않아서 오래걸렸지만 스스로 풀었다는점에서 의의가 있다고 생각한다. (KTX에서 풀었음 ㄷ) import sys input = sys.stdin.readline n = int(input()) info = [ [] ] # index 1부터 시작하기 용 for _ in range(n): t, p = m..

profile on loading

Loading...