목록2025/02 (15)
REC
이번 주차는 DFS/BFS입니다. DP 말고 차라리 이걸 저번 주에 하는 게 나았을지도...유형은 너무 익숙하지만 맨날 까먹어서 (머릿속에 남아 있는 건 visited 뿐) 이번엔 꼭 정복해 보겠습니다. 문제 설명https://www.acmicpc.net/problem/2606 하나의 컴이 바이러스에 걸리면 네트워크 상 그 컴과 연결된 모든 컴이 바이러스에 걸리게 된다.1번 컴을 통해 바이러스에 걸리게 되는 컴의 수를 출력해야 한다. -> 1번 컴은 제외된다.입력컴퓨터의 수 N (0 네트워크 상에서 연결되어 있는 컴퓨터 쌍의 수 M한 쌍씩 연결돼 있는 컴퓨터 번호 쌍 u, v풀이 과정N = int(input())M = int(input())graph = [[] for _ in range(N+1)]# 감염..
문제 설명 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 과정def solution(triangle): for i in range(1, len(triangle)): for j in range(len(triangle[i])): if i > 1 and j != 0 and j != len(triangle[i-1]): triangle[i][j] += max(triangle[i-1][j-1], triangle[i-1][j]) elif j == 0: triangle[i][j] += triangle[..

이번 주차는 대망의 DP다. 사실 원래 순서대로 하면 더 나중인데 어떠한 이슈로 DP를 좀 앞당겨왔다. 문제 설명 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr간단히 말하자면 n * m (ㅋㅋ) 모양의 격자가 있는데, 집은 (1,1)에 있고 학교가 (m,n)에 위치해 있다.물에 잠긴 지역을 피해 집 → 학교로 가는 최단경로의 개수를 return 해야 하는 문제.격자의 크기 m, n은 1 이상 100 이하인 자연수이고, m과 n이 모두 1인 경우는 없다.물에 잠긴 지역은 0개 이상 10개 이하이고, 집과 학교가 물에 잠긴 경우는 없다.오른쪽과 아래쪽으로만 움직일 수 있고, 최단경로의 개수를 1,000,0..
문제 설명https://www.acmicpc.net/problem/1253N개의 수 중, 어떤 수를 다른 수 두 개의 합으로 나타낼 수 있으면 그 수는 좋다. 이때 좋은 수가 몇 개인지 출력하는 문제. ex) 1,2,3,4,5,6,7,8,9,10 중 좋은 수는 3,4,5,6,7,8,9,10이다. 3 = 1 + 2, 4 = 1 + 3, ...수의 위치가 다르면 값이 같아도 다른 수로 본다.입력: 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수)출력: 개수를 첫 번째 줄에 출력한다. 풀이 과정투 포인터 알고리즘을 사용했다.투 포인터 알고리즘이란 주로 정렬된 배열의 연속적인 구간에서 합이나..
문제 설명https://www.acmicpc.net/problem/6236 풀이 과정1. Python 풀이import sysinput = sys.stdin.readlineN, M = map(int, input().split())money = [int(input()) for _ in range(N)]min_k = max(money)max_k = sum(money)while min_k = money[i]: temp -= money[i] else: temp = K - money[i] cnt += 1 if cnt M: min_k = K + 1print(answer) 2. Swift 풀이let input = readLine..