목록PS (1098)
넘치게 채우기
https://www.acmicpc.net/problem/2668BOJ - 숫자고르기문제 유형: 그래프, dfs/bfs, 위상정렬문제 난이도: Gold V시간 제한: 1초메모리 제한: 128MB 문제세로 두 줄, 가로로 N개의 칸으로 이루어진 표가 있다. 첫째 줄의 각 칸에는 정수 1, 2, …, N이 차례대로 들어 있고 둘째 줄의 각 칸에는 1이상 N이하인 정수가 들어 있다. 첫째 줄에서 숫자를 적절히 뽑으면, 그 뽑힌 정수들이 이루는 집합과, 뽑힌 정수들의 바로 밑의 둘째 줄에 들어있는 정수들이 이루는 집합이 일치한다. 이러한 조건을 만족시키도록 정수들을 뽑되, 최대로 많이 뽑는 방법을 찾는 프로그램을 작성하시오. 예를 들어, N=7인 경우 아래와 같이 표가 주어졌다고 하자.이 경우에는 첫째 줄에서 ..
https://leetcode.com/problems/count-the-number-of-arrays-with-k-matching-adjacent-elements/description/?envType=daily-question&envId=2025-06-17leetcode - Count the Number of Arrays with K Matching Adjacent Elemetns문제 유형: 조합론, 수학문제 난이도: Hard 문제You are given three integers n, m, k. A good array arr of size n is defined as follows:Each element in arr is in the inclusive range [1, m].Exactly k indic..
https://www.acmicpc.net/problem/7662BOJ - 이중 우선순위 큐문제 유형: 우선순위 큐, 해시문제 난이도: Gold IV시간 제한: 6초메모리 제한: 256MB 문제이중 우선순위 큐(dual priority queue)는 전형적인 우선순위 큐처럼 데이터를 삽입, 삭제할 수 있는 자료 구조이다. 전형적인 큐와의 차이점은 데이터를 삭제할 때 연산(operation) 명령에 따라 우선순위가 가장 높은 데이터 또는 가장 낮은 데이터 중 하나를 삭제하는 점이다. 이중 우선순위 큐를 위해선 두 가지 연산이 사용되는데, 하나는 데이터를 삽입하는 연산이고 다른 하나는 데이터를 삭제하는 연산이다. 데이터를 삭제하는 연산은 또 두 가지로 구분되는데 하나는 우선순위가 가장 높은 것을 삭제하기 위..
https://www.acmicpc.net/problem/1003BOJ - 피보나치 함수문제 유형: 다이나믹 프로그래밍문제 난이도: Silver III시간 제한: 0.25초메모리 제한: 128MB 문제다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다.int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); }}fibonacci(3)을 호출하면 다음과 같은 일이 일어난다.fibonacci(3)은 fib..
https://www.acmicpc.net/problem/2579BOJ - 계단 오르기문제 유형: 다이나믹 프로그래밍문제 난이도: Silver III시간 제한: 1초메모리 제한: 128MB문제계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다.예를 들어 와 같이 시작점에서부터 첫 번째, 두 번째, 네 번째, 여섯 번째 계단을 밟아 도착점에 도달하면 총 점수는 10 + 20 + 25 + 20 = 75점이 된다.계단 오르는 데는 다음과 같은 규칙이 있다.계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 다음 계단이나, 다음 다..
https://www.acmicpc.net/problem/10158BOJ - 개미문제 유형: 수학, 애드 혹문제 난이도: Silver III시간 제한: 0.15초메모리 제한: 256MB 문제가로 길이가 w이고 세로 길이가 h인 2차원 격자 공간이 있다. 이 격자는 아래 그림처럼 왼쪽 아래가 (0,0)이고 오른쪽 위가 (w,h)이다. 이 공간 안의 좌표 (p,q)에 개미 한 마리가 놓여있다. 개미는 오른쪽 위 45도 방향으로 일정한 속력으로 움직이기 시작한다. 처음에 (p,q)에서 출발한 개미는 1시간 후에는 (p+1,q+1)로 옮겨간다. 단, 이 속력으로 움직이다가 경계면에 부딪치면 같은 속력으로 반사되어 움직인다.위 그림은 6×4 격자에서 처음에 (4,1)에서 출발한 개미가 움직인 길을 보여주고 있다...
https://www.acmicpc.net/problem/31965BOJ - 회의 장소문제 유형: 수학, 이진 탐색, 누적 합문제 난이도: Gold I시간 제한: 1초메모리 제한: 1024MB 문제KOI 마을에는 N개의 집이 수직선 위에 지어져 있다. 각 집에는 사람들이 한 명씩 살고 있다. 사람들이 살고 있는 집의 좌표를 작은 순서대로 차례대로 나열했을 때, i (1≤i≤N)번째 집의 좌표는 Xi (Xi>0)이다. 마을에 일이 생기면, 마을 사람들은 회의 세트를 통해서 일을 해결한다. 회의 세트는 마을 사람들 전체가 참여할 수도 있고, 일부만 참여할 수도 있다. 회의 세트는 회의들로 구성된다. 회의는 회의 세트의 모든 참여자들이 그중 한 사람의 집에서 모이는 방식으로 진행된다. 회의 세트에서는 모든 참..
https://www.acmicpc.net/problem/13146BOJ - 같은 수로 만들기 2문제 유형: 스택, 그리디, 모노토닉 스택문제 난이도: Gold I시간 제한: 2초메모리 제한: 512MB 문제n(1 ≤ n ≤ 1,000,000)개의 자연수 A[1], A[2], A[3], …, A[n]이 있다. 이 자연수에 Add(i)라는 연산을 하면, A[i]가 1만큼 증가한다. 이때, A[i]만 증가하는 것이 아니고, A[i]의 좌우로 인접한 같은 수의 그룹이 한번에 1씩 증가한다. A[1]과 A[n]은 인접해 있지 않다.예를 들어 수가 {1, 1, 1, 1, 3, 3, 1} 이었다고 해 보자. Add(2)를 하면 A[2]의 좌우로 인접한 같은 수가 1씩 증가하니까 {2, 2, 2, 2, 3, 3, 1..
https://leetcode.com/problems/maximum-difference-between-even-and-odd-frequency-ii/description/?envType=daily-question&envId=2025-06-11leetcode - Maximum Difference Between Even and Odd Frequency II문제 유형: 비트마스크, 브루트 포스, 누적합, 슬라이딩 윈도우문제 난이도: Hard 문제You are given a string s and an integer k. Your task is to find the maximum difference between the frequency of two characters, freq[a] - freq[b], in ..
https://www.acmicpc.net/problem/1119BOJ - 그래프문제 유형: 그래프, MST(최소 신장 트리), dfs/bfs문제 난이도: Gold I시간 제한: 2초메모리 제한: 128MB 문제N개의 도시가 있고, 몇몇 도시들이 양방향 도로로 연결되어 있는 나라가 있다. 은진이는 이나라의 도로 몇 개를 수정해서 모든 도시가 서로 연결되어 있게 하려고 한다. 이때, 도로를 수정하는 회수를 최소로 하려고 한다. 도로를 수정하는 방법은 다음과 같다.A와 B가 연결되어 있고, C와 D가 연결되어 있으면서, A와 C, A와 D, B와 C, B와 D가 연결되어 있지 않은 4개의 도시 A, B, C, D를 선택한다.A와 B를 연결하는 도로와 C와 D를 연결하는 도로를 없앤다.A와 C, B와 D를 연..