코딩테스트4 Programmers. 합승 택시 요금 (2021 KAKAO BLIND RECRUITMENT) 합승 택시 요금에 대한 문제이다. 문제는 2가지로 풀어볼 수 있을 것 같다. 1번째로는 다익스트라, 2번째로는 플로이드-와샬이 가능하다고 생각했다. https://ds-jungsoo.tistory.com/7 Shortest Paths(다익스트라 알고리즘 (Dijkstra Algorithm)) 이번에는 다익스트라 알고리즘에 대해서 공부를 해보았다. 다익스트라 알고리즘은 단일 시작점으로부터 다른 노드들까지의 최단 경로를 구하는 알고리즘이다. 또한, 음의 가중치를 허용하지 ds-jungsoo.tistory.com 다익스트라에 대해서 공부했기 때문에 다익스트라로 생각해보았다. Dijkstra를 두번 사용하는 것으로 접근을 하였고, 1번째는 A,B가 같이 가는 구간 (합승 구역) 2번째는 합승 후, 각자 가는 구.. 2021. 11. 8. 백준 5904 : moo 게임 재귀함수 부분을 공부하고 moo게임이라는 풀어보았다. 겉으로 봤을 때 재미있어 보였으나, 쉽지 않았다. 문제를 해석하자면 S(0) = moo S(1) = S(0) mooo S(0) S(2) = S(1) moooo S(1) 이런식으로 반복되는 것을 알 수 있다. 결론적으로는 계속 씨름해보았지만 조금씩 엇나가서 완벽히 풀지 못했다. 생각을 비슷하게 한 https://hae-ong.tistory.com/82 백준 5904 moo 게임 처음엔 문제 그대로 수열을 재귀적으로 계속 만들다가 수열의 크기가 n 이상이 되면 재귀를 끝내고 해당 수열[n]으로 문자를 찾아주는 코드를 작성했으나 역시나 메모리 초과로 실패하였다. 따 hae-ong.tistory.com 이 분의 코드를 보면서 한번 더 배우는 계기가 되었다. .. 2021. 10. 25. 백준 2577 : 숫자의 개수 백준 수학, 사칙연산에 분류되어있는 '숫자의 개수' 문제를 풀어보았다. list와 count 함수를 이용하면 쉽게 해결 할 수 있었다. 제출 코드 A = int(input()) B = int(input()) C = int(input()) #3개 값 입력받기 result = A*B*C #곱한 값 result_list = list(str(result)) #list, str로 변경 for i in range(10): #각 숫자로 판단하기위해서 result_count = result_list.count(str(i)) #list내 count함수 사용 print(result_count) 2021. 10. 18. 백준 1260 : DFS와 BFS DFS와 BFS에 대해 기본적으로 공부를 한 후, 기본 문제들을 풀어보려고 한다. 백준 1260번 문제이다. 제출 코드 N,M,V=map(int,input().split()) #입력받아야할 변수 설정 matrix=[[0]*(N+1) for i in range(N+1)] #초기 matrix 0으로 선언 for i in range(M): a,b = map(int,input().split()) matrix[a][b]=matrix[b][a]=1 visit_list=[0]*(N+1) def dfs(V): visit_list[V]=1 #방문한 지점은 1로 표시 print(V, end=' ') for i in range(1,N+1): if(visit_list[i]==0 and matrix[V][i]==1): dfs(.. 2021. 10. 17. 이전 1 다음