백준(10)
-
16235 c++ - 나무 재테크
나무는 (x, y)라고 해놓고선 r,c로 들어왔다. 문제가 날 속임. (그래서 틀림...ㅠㅠ)결국 맞췄을땐 vector로하면 시간초과가 난다는 것을 알게 되었다. 처음에 문제 잘 읽고 시간 제한 보긴했지만 구현 문제라서 그냥 주어진 상황대로 풀었다. 둘을 비교했을때, 나무의 수가 커지면 커질수록 더 차이가 난다.# Let's calculate the complexity of both versions of the code to compare their potential performance.# Old Version (using vector):# In the old version, we have:# - Spring: Sorting the entire vector by age each spring, which..
2024.10.08 -
1299 c++ - 전쟁-탈출편2
다익스트라 정리 다익스트라 풀이처음에 다익스트라로 n까지 최단 거리 구함. (구하면서 prev에 간선 정보들을 저장)prev를 이용하여 graph에서 해당하는 간선들을 삭제.다시 다익스트라를 돌려서 n까지 가는 최단 거리를 구함.고려한 점도시는 양방향으로 이동할 수 있다. (최단거리라면 양방향 둘 다 막힌다)다른 도시로 이동할 때 코스트가 다른 도로가 존재할 수 있다 ( 1->2 (1), 1->2 (2)) 이때 cost 가 1인 도로만 막힘탈출하지 못하는 경우는 없다.정답 코드더보기#include using namespace std;#define INF 1e9void dijkstra(int n, vector>>& graph, vector& distance, vector& prev..
2024.10.05 -
11404 swift - 플로이드
플로이드 워셜 알고리즘 사용 [그래프] 플로이드 워셜(Floyd-Warshall Algorithm) 플로이드 워셜(Floyd-Warshall Algorithm) 컴퓨터 과학에서 플로이드-워셜 알고리즘(Floyd-Warshall Algorithm)은 변의 가중치가 음이거나 양인 (음수 사이클은 없는) 가중 그래프에서 최단 경로들을 찾는 알고 chanhhh.tistory.com 중간노드를 거쳐서 갈 수 있는 경우를 고려하여 3중 for문으로 코드를 작성합니다. import Foundation var n = Int(readLine()!)! var cost = Array(repeating: Array(repeating: 987654321, count: n), count: n) for _ in 0..
2024.02.05 -
9663 swift - N-Queen
https://www.acmicpc.net/problem/9663 [Swift] BackTracking / 백트래킹 / 퇴각검색 BackTracking / 백트래킹 / 퇴각검색 여러 후보 해 중에서 특정 조건을 충족시키는 모든 해를 찾는 알고리즘. 해를 찾는 도중 막히면 돌아가 다시 해를 찾아간다. 1. 해를 찾아가는 과정은 '루트'에서 chanhhh.tistory.com 시간 초과. 얼마나 효율적으로 검사 할 수 있는가. 더보기 시간 초과. import Foundation let n=Int(readLine()!)! var board=Array(repeating: 0, count: n) var queen=0 var count=0 public func progressTime(_ closure: () -> ..
2023.06.12 -
11444 swift - 피보나치 수 6
[종만북] Divide & Conquer / 분할 정복 Algorithmic Problem Solving Strategies 개인적으로 읽고 정리한 요약 입니다. 아래 링크에 문제 풀이 예제가 있습니다. GitHub - chanheki/AlgorithmicProblemSolvingStrategies: Algorithm Book Study Algorithm Book Study. Contribute chanhhh.tistory.com import Foundation let DIV: UInt = 1000000007 var f = [UInt: UInt]() func fibo(_ n: UInt) -> UInt { if n == 0 { return 0 } if n == 1 { return 1 } if n == ..
2023.06.11