목록Algorithm (138)
REC
문제 설명https://www.acmicpc.net/problem/11053수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다.입력 - 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000)출력 - 첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다. 예제 입력 1610 20 10 30 20 50예제 출력 14예제 입력 241 10 2 3예제 출력 23풀이 과정# 입력N = ..
문제 설명https://www.acmicpc.net/problem/2293요약) n가지 종류의 동전으로 k원을 만드는 경우의 수를 출력합니다. 동전의 중복 사용이 가능합니다.예제 입력3 10125예제 출력105,5 / 1,1,1,1,1,1,1,1,1,1 / 1,2,2,5 / 1,1,1,1,1,5 / 2,2,2,2,2 / 1,1,2,2,2,2 / 1,1,1,1,2,2,2 / 1,1,1,1,1,1,2,2 / 1,1,1,1,1,1,1,1,2 / 1,1,1,2,5 로 총 경우의 수가 10가지입니다.풀이 과정dp[i]는 i를 만들 수 있는 경우의 수 입니다.1) 1을 사용해서 10을 만들 수 있는 경우의 수 -> 1만 사용 가능2) 2를 포함해서 10을 만들 수 있는 경우의 수 -> 1과 2 사용 가능3) 5를 ..

문제 설명https://www.acmicpc.net/problem/1495요약) 곡의 개수 N과 시작 볼륨 S, 볼륨의 최댓값 M, 그리고 더하거나 줄여서 볼륨을 조정할 수 있는 볼륨의 차이 V가 주어졌을 때, 마지막 곡을 연주할 때 최대 볼륨을 가지도록 하는 프로그램을 작성해야 합니다. 입력 첫째 줄에 N, S, M이 주어진다. (1 ≤ N ≤ 50, 1 ≤ M ≤ 1,000, 0 ≤ S ≤ M) 둘째 줄에는 각 곡이 시작하기 전에 줄 수 있는 볼륨의 차이 V가 N개의 리스트로 주어진다. (1 ≤ V[i] ≤ M) V[i]는 i번째 곡을 연주하기 전에 바꿀 수 있는 볼륨을 의미한다. 항상 리스트에 적힌 차이로만 볼륨을 바꿀 수 있다. 즉, 현재 볼륨이 ..
문제 설명https://www.acmicpc.net/problem/1904요약) '00'과 '1'을 사용해서 길이가 N인 2진 수열을 만들어야 합니다. 만들 수 있는 길이가 N인 모든 2진 수열의 개수를 15746으로 나눈 나머지를 출력하면 됩니다. 입력 N은 1 이상, 1,000,000 이하로 주어집니다.예제 입력 14예제 출력 15-> 00과 1을 이어붙여 만들 수 있는 2진 수열 중에 크기가 4인 것은 1001, 1100, 0011, 0000, 1111 로 총 5개입니다.풀이 과정DP는 하나의 문제를 여러 개의 중복되는 문제로 나누는 Overlapping subproblems와, 작은 문제의 답들을 재사용하여 큰 문제의 정답을 구할 수 있다는 Optimal substructure의 조건을 만족해야 ..

종.스 2주차의 마지막 과제.미루고 미루던 바로 골드 3 문제입니다.....누군지는 안 알려드리겠습니다.심신의 안정이 필요할 것 같아서 잠시 쳐다보는 시간을 갖겠습니다.321Let's go문제 설명https://www.acmicpc.net/problem/1939솔직히 블로그 쓰는 거 너무 오래 걸려서 이것만 첨부하고 넘어가고 싶지만 미래의 제가 다시 보았을 때 이해 못 할 것 같습니다.기록은... 다 미래를 위하는 일입니다.섬의 개수 N, 그 섬들을 잇는 다리의 개수 M이 있습니다.다리에 대한 정보로 A B C 가 주어지고, 이는 'A에서 B로 가는 다리는 C만큼의 중량제한이 있다'는 뜻입니다. 다리는 양방향이고, 두 섬을 잇는 다리가 여러 개일 수 있습니다.중량이 C를 초과하는 물품이 이 다리를 지나게..

하... 까딱하면과제가 너무 어렵습니다 선생님라고 할 뻔했습니다....오히려 좋아 마인드 장착하겠습니다.감사합니다. 덕분에 팔자에도 없던 골드 문제들을 풀어봅니다.이때까진 몰랐다. 그 다음 문제가 더 어렵다는 것을.문제 설명https://www.acmicpc.net/problem/2110저의 사랑 (이)도현 씨의 집이 수직선 위에 있다고 합니다. 집이 여러 채라니... 그는 재력마저 갖춘 것을 알 수 있습니다.그의 집에 공유기를 설치할 건데, 가장 인접한 두 공유기 사이의 거리를 최대로 하고 싶은 겁니다. 입력으로 집의 개수 N, 공유기 개수 C와 N개의 집의 좌표 xi가 주어집니다. 2 ≤ N ≤ 200,000 2 ≤ C ≤ N 0 ≤ xi ≤ 1,000,000,000 ..

문제 설명 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr solution 함수의 인자로, 2차원 배열인 game_board와 table이 주어집니다. game_board의 0은 빈 공간, table의 1은 블럭이 있는 칸입니다. game_board의 빈 공간에 table의 블럭을 채워야 합니다. table의 블럭들은 뒤집기를 제외하고 회전이 가능합니다. 블럭을 한 번에 하나씩만 넣을 수 있고, 보드에 새로 채워 넣은 블럭과 인접한 칸이 비어 있으면 안 됩니다. 즉, 빈 공간과 채워질 블럭의 모양이 딱 맞아야 함! 2개의 블럭을 조합하여 하나의 공간을 채운다는 것이 불가능합니다. (..
안녕하세요.시간이 없으니 바로 Let's go문제 설명https://www.acmicpc.net/problem/3079여행을 갔답니다.사람은 M명, 입국심사대는 N개입니다.k번 심사대의 심사관의 심사 시간은 Tk입니다.예를 들어, 두 심사대가 있고, 심사를 하는데 걸리는 시간이 각각 7초와 10초라고 하자. 줄에 서 있는 사람이 6명이라면, 가장 첫 두 사람은 즉시 심사를 받으러 가게 된다. 7초가 되었을 때, 첫 번째 심사대는 비어있게 되고, 세 번째 사람이 그곳으로 이동해서 심사를 받으면 된다. 10초가 되는 순간, 네 번째 사람이 이곳으로 이동해서 심사를 받으면 되고, 14초가 되었을 때는 다섯 번째 사람이 첫 번째 심사대로 이동해서 심사를 받으면 된다. 20초가 되었을 때, 두 번째 심사대가 비어..
이번 주차는 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[..