일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- LCS
- PCCE
- 색종이와가위
- 2025 프로그래머스 코딩챌린지 1차예선
- boj 21921
- lock free stack
- 비밀 코드 해독
- boj 1958
- 지게차와 크레인
- pcce 기출문제 풀이
- 브루트포스
- tessellation
- boj 1074
- render target
- boj 15724
- lock based stack
- orthographic projection
- boj 20207
- 데이터 체커
- dp
- boj 6443
- lock based queue
- boj 11053
- 홀짝트리
- c++
- boj 22942
- 프로그래밍공부
- DirectX12
- DirectX
- pccp 기출문제 풀이
- Today
- Total
목록프로그래밍 공부/백준 알고리즘 (51)
오구의코딩모험

https://www.acmicpc.net/problem/1749 문제 3줄 요약1. 동주와 점수 따먹기 게임을 한다.2. N*M 행렬 각 칸에 -10'000 ~ 10'000의 정수를 하나씩 쓴다.3. 행렬의 부분 행렬의 합이 최대가 되게 구하라! 예제를 보고누적합을 생각하니 DP를 사용해야겠는데?라는 생각이 떠올랐고풀었던 유사한 문제가 생각났다. https://59travel.tistory.com/104 [C++] BOJ 15724번 : 주지수https://www.acmicpc.net/problem/15724 문제 3줄 요약1. 네모 왕국의 1X1의 단위 구역을 여러 개 묶으려고 한다.2. 4개의 숫자로 직사각형 범위를 알려준다.3. 해당 직사각형 범위의 내에 살고 있는 사람 수를59travel...

https://www.acmicpc.net/problem/1074 문제 3줄 요약1. 2^N x 2^N 크기의 2차원 배열을 Z모양으로 탐색한다.2. 순서는 왼쪽 위 / 오른쪽 위 / 왼쪽 아래 / 오른쪽 아래 순으로 Z 모양이다.3. r행 c열은 몇 번째로 방문하는지 출력해라! N=3일 경우는 아래와 같이 탐색한다. 그림만 봐도 끔찍하다. 이번 문제는 큰 문제를 작은 문제로 나누어서 해결하는분할 정복 문제이다. 따라서 Z모양으로 탐색하는 부분과재귀를 통한 2 x 2 사각형 탐색하는 부분이 필요하다. 작성된 코드를 보고 분석해보자. if(pow(2,w-1) != 1){ for(int i=x; i 한 변의 길이가 2^w이며, (x, y) 좌표부터 시작하는 사각형은2x2 길이의 사..

https://www.acmicpc.net/problem/6443 문제 3줄 요약1. 씬디는 애너그램 프로그램을 만들어 줄 수 있는 남자가 좋다.2. 애너그램은 입력받은 문자열의 단어들을 재배치한 단어들을 출력하는 것이다.3. 재배치한 문자열의 중복은 제외하고 알파벳 순서로 출력해라. 예시를 보면 바로 이해가 가능하다. (입력) abc → (애너그램) → (출력) abc acb bac bca cab cba abc가 입력으로 주어지면a 1개, b 1개, c 1개로 만들 수 있는 문자열들을 출력하면 된다. 출력할 때알파벳 순서대로 출력해야하니 위와 같이 순서로 출력된다. 문자열의 최대 길이가 21이라고문제에 조건으로 주어졌다. 따라서 완전 탐색은 불가능하기에조합 함수를 사용하거나백트래킹을 통한 탐색이 필요..

https://www.acmicpc.net/problem/20444 문제 3줄 요약1. 직사각형의 색종이를 가위로 자른다.2. 한 변에 평행하게 자르며, 자를 땐 멈추지 않고 자른다.3. n번의 가위질로 k개의 색종이로 자를 수 있는지 확인하는 코드를 작성하자. 예시를 통해 살펴보자! 4번의 가위질로 9개의 색종이를 만든다면? 위의 그림과 같이가로 2번, 세로 2번을 자른다면 9개의 색종이로 자를 수 있다. 따라서가로로 몇 번을 자르는지,세로로 몇 번을 자르는지에 따라서몇 개의 색종이로 나뉘어 지는지 계산이 가능하다. 계산식을 작성해본다면가로로 자른 횟수 : x세로로 자른 횟수 : 전체 가위질 - x색종이 수 = ( x + 1 ) * ( n - x + 1 )로 표현할 수 있다. 그럼 이 식을 어떤 ..

https://www.acmicpc.net/problem/20207 문제 3줄 요약1. 달력에 1년치 일정을 표시하려고 한다.2. 연속된 일자에 일정이 1개 이상 있다면, 이를 연속되었다고 표현한다.3. 연속된 일정을 하나의 직사각형에 포함하여 달력에 코팅지를 붙일 때, 코팅지의 넓이는? 구현 문제라서 그런가문제부터 길고 뭔가 조건이 좀 많아서 복잡해보인다... 예시를 보면서 이해해보자. 위와 같이 2일 ~ 12일까지 일정은아래의 보라색 코팅지를 붙일 수 있다. 2일 ~ 9일까지는 연속된 일정이기에하나의 직사각형으로 묶고 있고 11일 ~ 12일은따로 직사각형 모형으로 코팅지를 붙였기에 총 면적이 28 (= 24+4) 이다. 일단 일정이 주어졌을 때,위와 같이 달력과 같은 형태로 구현해보도록 하겠다. ..

https://www.acmicpc.net/problem/21921 문제 3줄 요약1. 운영하고 있는 블로그의 방문 기록이 있다.2. 블로그의 X일 동안 가장 많이 들어온 방문자 수와 그 기간을 알고싶다.3. 최대 방문자 수가 0이라면 "SAD" 슬픔을 표현하자 이번 문제는이중 포인터를 활용한 문제이다. 방문자 수를X일 동안의 방문자 수를 일자 별로 구해주기 보다는1일차 부터 X일 동안 더해준 값을 기반으로2일차 ~ 2+X일의 값을 구해주려고 했다. 말로는 어려우니 예시와 그림을 통해 살펴보자. 총 5일 간의 방문 기록 중2일 간 방문자의 수가 최대였을 때, 방문자의 수와 기간은 어떻게 될까? 정답은 3일 ~ 4일차 까지의 방문자 수 합인 7과방문자 수가 7인 기간이 하루 뿐이므로 1이 되겠..

https://www.acmicpc.net/problem/11053 문제 1줄 요약1. 수열 A의 가장 긴 증가하는 부분 수열을 구해라. 위와 같이 가장 긴 증가하는 부분 수열을최장 증가 부분 수열, LIS(Longest Increasing Subsequence) 라고 한다. LIS는DP와 이분 탐색 두 가지 알고리즘을 활용하여 풀 수 있다고 한다. 이번 문제에서는DP를 활용하여 풀어보고다음 글에서는 가장 긴 증가하는 부분 수열 2를 이분 탐색으로 풀고자 한다. 가장 긴 증가하는 부분 수열은문자 그대로 부분 수열이면서, 값이 점점 증가하는 형태를 띄고 있는 수열이다. ex) 수열 A = {10, 20, 10, 30, 20, 50}의 LIS는?{10, 20, 30, 50} 이 최장 증가 부분 수열이 될..

https://www.acmicpc.net/problem/9251https://www.acmicpc.net/problem/1958 문제 3줄 요약1. Longest2. Common3. Subsequence 오늘은 LCS(Longest Common Subsequence, 최장 공통 부분 수열) 문제를 풀어봤다. 최장 공통 수열은문제에도 설명되어있듯이 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것이다. ex) ACAYKP, CAPCAK → LCS : ACAK LCS와 다른게 LIS라는 것도 있던데..이건 다음에 풀어보자! 일단 LCS의 알고리즘 분류가DP로 되어있다. DP 테이블에 어떤 값을 저장해야하는지도무지 감이 잡히지 않아서바로 유튜브 서칭! https://www.youtub..

https://www.acmicpc.net/problem/15724 문제 3줄 요약1. 네모 왕국의 1X1의 단위 구역을 여러 개 묶으려고 한다.2. 4개의 숫자로 직사각형 범위를 알려준다.3. 해당 직사각형 범위의 내에 살고 있는 사람 수를 구해보자. DP가 아닌 완전 탐색으로 처음 접근했더니시간 초과로 통과가 되지 않았다..! 직사각형의 시작 좌표와 (1,1)가고정이 아니기에 DP 테이블을 사용할 수 있나? 에 대한의문이 생겼다. 결국 코딩도사인 GPT에게DP를 어느 부분에 적용하면 좋을지 도움을 받았다. DP 테이블에 (1, 1)부터 해당 좌표까지의직사각형 합을 저장(메모이제이션) 해두는 것이었다. 그 후(1, 1) 부터 (x1, y1) 의 인원 수와(1, 1) 부터 (x2, y2) 의 인원 수..

https://www.acmicpc.net/problem/22942 문제 3줄 요약 1. 원의 중심이 x축 위에 존재하는 원들이 존재 한다.2. N개의 원들의 중심 x좌표와 반지름이 주어진다.3. 각 원들이 서로 교점이 생기는지 않는지 확인해봐라. 문제에서 N의 최대 값이 200,000 으로원을 하나 받을 때마다 그려진 원들을 전부 비교하기엔N(N-1)/2 정도의 연산이 필요하니대충 계산해봐도 200억 번의 연산이 필요하다. 따라서원이 그려질 때마다 겹치는지 겹치지 않는지범위 값을 담아두고 비교하는 형식이 필요할 것이다. 일단원의 중심 좌표, 반지름을 통해각 원의 최소 좌표와 최대 좌표를 vector에 담아 비교 연산에 필요한 값들을 세팅해주었다. int n;cin >> n;vector> circl..