https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 문제 이해하기 왼쪽 그림은 비가 4만큼 왔을 때의 안전 영역 / 오른쪽 그림은 비가 6만큼 왔을 때의 안전 영역 처음 제출한 코드 import Foundation var arr = Array(repeating: Array(repeating: 0, count: n), count: n) var check = Array(repeating: Array(repeating: 1, count: n), count: n..
Algorithm

https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사www.acmicpc.net DFS · BFS에 대해 학습했다. DFS : 깊이 우선 탐색 // BFS : 너비 우선 탐색 • DFS (깊이 우선 탐색)DFS라면 위의 노드 그림에서 노드는 1, 2, 4, 5, 3 • BFS (너비 우선 탐색)BFS라면 위의 노드 그림에서 노드는 1, 2, 3, 4, 5 가 된다. DFS는 끝까지 내려간 후 더 이상 내려갈 곳이 없다면 다시 올라가서 탐색한..

https://www.acmicpc.net/problem/1946 1946번: 신입 사원첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성www.acmicpc.net Greedy 2번째문제 ....여기서 문제 이해하는데 어려웠다. 입력 값 설명을 보면 서류심사 성적, 면접 성적의 순위가 주어진다고 되어 있는데,처음에 순위가 아닌 점수로 받아드려서 문제 이해와 예시가 매치되지 않았다. 다시 순위로 생각했을 때 ,우선 1차 서류 순위 오름차순으로 정렬한다. 그리고 2차 면접 순위를 비교해서 더 순위가 높은 지원자가 있다면 카운트를 세준다. 처음..
https://www.acmicpc.net/problem/1931 1931번: 회의실 배정(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.www.acmicpc.net Greedy 문제 유형의 대표적인 문제 !! 회의실 배정을 풀었다. 우선 회의실을 끝나는 시간이 작은 순으로 정렬하고, 회의실을 순차적으로 살펴보면서 다음 회의실 예약 시작 시각이 현재 끝나는 시각보다 느리거나 같으면 카운트를 센다. 처음 제출한 답변import Foundationlet n = Int(readLine()!)!var meetings: [(s: Int, e: Int)] = []for _ in 0..= nowE { cnt += 1 nowE = meeting.e }}print..

https://www.acmicpc.net/problem/1004 1004번: 어린 왕자입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주www.acmicpc.net 제출한 코드import Foundationlet t = Int(readLine()!)!for _ in 0.. x1, y1 혹은 x2, y2와 현재 좌표 x, y의 거리가 반지름보다 작다면 해당 원을 통과해야 하므로 cnt += 1 해줘야 한다. 하지만 이때 주의해야 하는 경우는 x1, y1과 x2, y2가 현재 원 안에 갇힌 경우는 거리가 반지름보다 작지만 cnt에 포함하지 않아야 한..

https://www.acmicpc.net/problem/9084 9084번: 동전우리나라 화폐단위, 특히 동전에는 1원, 5원, 10원, 50원, 100원, 500원이 있다. 이 동전들로는 정수의 금액을 만들 수 있으며 그 방법도 여러 가지가 있을 수 있다. 예를 들어, 30원을 만들기 위해서는www.acmicpc.net 이전 블로그에서 작성한 BOJ 12865 평범한 배낭 문제를 다른 사람의 해답을 참여하고 풀고그 문제와 비슷한 유형인 BOJ 9084 동전 문제를 스스로 풀어보았다. 제출한 풀이import Foundationlet t = Int(readLine()!)!for _ in 0..= coin { if j % coin == 0 { ..

https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000)www.acmicpc.net 풀다가 못풀겠어서 구글링을 통해 풀이를 참고했다.참고한 풀이 : https://velog.io/@nnnyeong/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%ED%92%80%EC%9D%B4-%EB%B6%84%EC%84%9D-BOJ-12865-%ED%8F%89%EB%B2%94%ED%95%9C-%EB%B0%B0%E..
https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net 경우의 수 ●○●● : dp[i-3] 값에서 현재 와인 값과 이전 와인 값을 더한 경우 ●○● : dp[i-2] 값에서 현재 와인 값을 더한 경우 ○ : 현재 와인을 먹지 않는 경우 (dp[i-1]) import Foundation let n = Int(readLine()!)! var wine = Array(repeating: 0, count: n+1) var dp = Array(repeating:..
https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 처음 제출한 코드 import Foundation let n = Int(readLine()!)! var dp = Array(repeating: 0, count: n+1) for i in 2...n { dp[i] = dp[i-1] + 1 if i % 3 == 0 { dp[i] = min(dp[i], dp[i/3] + 1) } else if i % 2 == 0 { dp[i] = min(dp[i], dp[i/2] + 1) } } print(dp[n]) >> 틀렸습니다. 틀린 이유는 else if로 작성했기 때문이다...
https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 처음 제출한 코드 import Foundation let n = Int(readLine()!)! var dp = Array(repeating: 0, count: n+1) dp[1] = 1 dp[2] = 2 if n >= 3 { for i in 3..> 런타임 에러 왜 런타임 에러가 나는지 30분 동안 꽁꽁 싸맸는데..... n = 1일 때, dp 배열을 길이를 n+1까지 만들어놔서 dp[2] = 2 이 곳에서 에러가 ..