일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- root signature
- pcce 기출문제 풀이
- 오블완
- python 고대 문명 유적 탐사
- 잔디 기부 캠페인
- boj 5567
- texture mapping
- pcce 기출문제 10번 공원 풀이
- 코드트리 고대 문명 유적 탐사
- gemmasprint
- directx 그래픽스
- pcce 기출문제 9번 지폐 접기
- pccp 기출문제 풀이
- 프로그래밍공부
- depth-stencil
- constant buffre
- pcce 기출문제 10번 공원
- PCCE
- 백준 5567
- c++ 5567
- 티스토리챌린지
- 잔디 기부
- 수식 복원하기
- 렌더링 파이프
- pcce 기출문제 10번 지폐 접기 풀이
- c++ 1991
- DirectX
- DirectX12
- boj 1991
- 고대 문명 유적 탐사
- Today
- Total
목록프로그래밍 공부 (76)
오구의코딩모험
https://www.acmicpc.net/problem/2661 2661번: 좋은수열 첫 번째 줄에 1, 2, 3으로만 이루어져 있는 길이가 N인 좋은 수열들 중에서 가장 작은 수를 나타내는 수열만 출력한다. 수열을 이루는 1, 2, 3들 사이에는 빈칸을 두지 않는다. www.acmicpc.net 문제 3줄 요약 1. 숫자 1, 2, 3 으로만 이루어져 있는 수열이 있다. 2. 임의의 길이의 인접한 두 개의 부분 수열이 동일한 것이 있으면, 나쁜 수열. 아니라면 좋은 수열 3. N자리의 좋은 수열 중에서도 가장 작은 좋은 수열을 구하여라. 문제만 읽어봤는데도 정신이 혼미해졌다. 단순히 연속되는 숫자가 아닌 연속되고 인접한 '수열'을 걸러내야 하면서 N의 자리 수열 중 가장 작아야한다. 일단 통과한 코드..
문제 3줄 요약 1. N개의 정수로 이루어진 수열과 주어진 정수 S가 있다. 2. 수열의 원소들을 더하여 S를 만들고자 한다. 3. 주어진 수열의 원소들을 이용하여 S를 만들 수 있는 경우의 수를 구하여라. 처음 문제에 접근 하였을 땐, 투포인터를 이용하여 좌, 우 원소의 합이 S보다 클 때, 작을 때를 나누어 원소들을 더해주는 방식으로 접근하였다. 하지만 투포인터로는 모든 경우의 수를 탐색하긴 어렵다는 글을 확인한 후 브루트포스 알고리즘을 이용하였다. 모든 조합의 경우의 수를 더해보며 타겟인 S와 같은 경우를 카운트 해주었다. from sys import stdin # 조합 라이브러리 from itertools import combinations if __name__ == "__main__": N, S..
https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 문제 3줄 요약 1. 편집기에 위와 같은 4가지 기능이 있다. 2. 초기 문자열에서 입력한 명령어를 차례대로 실행한다. 3. 남은 문자열을 출력해라! L은 커서를 왼쪽으로 한 칸, R은 커서를 오른쪽으로 한 칸, B는 커서 왼쪽 문자 삭제, P $는 $라는 문자를 커서 왼쪽에 추가. (여기서 커서는 문자열 오른쪽 끝에서 시작!!) 쉽게 말해, 왼쪽 이동, 오른쪽 이동, 문자 삭제, 문자 추가가 되겠..
https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 문제 3줄 요약 1. 1 부터 n까지의 수를 스택에 넣었다가 뽑는다. 2. 뽑은 수들로 수열을 만들 것이다. 3. 만들고자 하는 수열이 주어지는데 만들기 가능하다면, push와 pop 연산 순서대로 출력. 불가능이면 "NO" 출력 예제를 보고 처음엔 주어진 수열이 어딨는거지? 찾고 있었다 ㅋㅎ... 위의 예제 첫 번..
수 정렬하기 1, 2를 이어 3을 풀어보도록 하겠다! 문제 3줄 요약은 아래 링크와 동일하다. https://59travel.tistory.com/65 [Python] 수 정렬하기, 수 정렬하기 2 문제 3줄 요약 1. N개의 수를 오름차순으로 출력한다. 2. 수는 중복되지 않는다. 3. 왼쪽 문제는 N이 1000이하, 오른쪽 문제는 N이 100만 이하이다. 같은 기능을 하는 문제지만, Input으로 들어올 수 있 59travel.tistory.com 기존의 1,2 와 문제는 같지만 3 또한 N의 범위가 다르고, 중복되는 숫자가 존재한다. 때문에 이전에 사용했던 from sys import stdin import heapq if __name__ == "__main__": N = int(stdin.read..
문제 3줄 요약 1. N개의 수를 오름차순으로 출력한다. 2. 수는 중복되지 않는다. 3. 왼쪽 문제는 N이 1000이하, 오른쪽 문제는 N이 100만 이하이다. 같은 기능을 하는 문제지만, Input으로 들어올 수 있는 사이즈가 다른 문제였다. 두 문제 모두 python 리스트의 sort로 푼 코드들이 있는 것 같다. python sort 함수 Timsort라는 정렬 알고리즘을 사용하는데 Quicksort와 같이 평균 시간 복잡도가 O(NlogN) 이지만, 최악의 경우는 더 빠른 O(NlogN) 이라고 합니다. https://realpython.com/sorting-algorithms-python/#the-timsort-algorithm-in-python Sorting Algorithms in Pyth..
문제 3줄 요약 1. 색깔 별 영역을 나눈다. 2. 적록색약은 빨강과 초록을 같은 색으로 인지하여 구역을 나눈다. 3. 일반인이 보는 색깔 별 영역과 적록색약이 보는 색깔 별 영역을 구해라 BFS로 기준으로 잡은 색과 다른 색이 나오면, 다시 돌아가는 방식으로 코드를 작성하였다. 조금 차이점이 있다면, 적록색약일 경우엔 빨강과 초록을 같게 인지하는 조건문을 추가해주었다. 문제가 어렵진 않았지만, 문제를 해결하고 난 후 다른 사람과 코드를 비교해보았을 때, 상하좌우 비교와 구조체 생성을 리스트 하나로 해결하는 코드를 주로 작성하는게 보였다. 지금 나의 코드는 직관적이라고 생각하지만, 코드의 길이가 길고 복잡한 기능이 필요한 BFS, DFS 일 경우 잦은 오류가 발생하는 것 같다. 이후의 DFS, BFS 문..
문제 3줄 요약 1. 상덕이는 도둑이다. 2. 보석은 총 N개, 무게는 M, 가격은 V 3. 상덕이 가방 개수 K개, 담을 수 있는 무게는 C이며 가방 당 최대 한 개, 최대 얼마까지 훔칠 수 있을까? 문제를 읽고 직관적으로 느낀 해결법은 가방에 담을 수 있는 최대 무게가 작은 가방부터 무게 당 가격이 높은 보석을 넣어야한다는 것이었다. 따라서 무게 당 가격이 높은 보석 순으로 정렬하고 차례대로 가방에 넣고 해당 보석은 제외시키는 방법을 하니 바로 시간 초과 ㅎ.. 아무래도 리스트에서 값을 지우는 것은 리스트를 한바퀴 돌아야하므로 효율적이지 못했던 것 같다. 그리고 한번 거쳤던 보석들도 다시 재비교 한다는 것을 알 수 있었다. Ex) 무게가 1, 2, 3 가격이 5,6,7인 보석이 있다. 가방이 1,2,..
문제 3줄 요약 1. 상근이는 심심하다. 2. N개의 숫자가 종이에 있다. 3. 종이에 적은 수를 M으로 나누었을 때, 나머지가 모두 같게하는 M을 모두 찾아라 정수론 관련 문제는 딱 봐도 직관적으로 느껴지는게 없어서 힘든 것 같다.. (나는 그렇다. 다른 사람들은 직관적으로 보인다고 하더라) 저번 문제의 에라토스테네스의 체 같은 경우는 나름 이해하기 쉬웠지만, 이번엔 최대공약수를 구하는 "유클리드 호제법" 과 관련된 문제였다. 물론 위의 호제법을 몰랐기에 1부터 수를 늘려가며 비교해볼까 했지만, 당연하게도 수가 10억보다 같거나 작은 자연수기에 빠르게 포기하고 유클리드 호제법을 구글링하였다. https://namu.wiki/w/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C%20%ED..
문제 3줄 요약 1. 연속된 소수의 합으로 자연수를 나타내고자 한다. 2. 위의 예시는 연속된 소수의 합으로 나타낼 수 있지만, 20과 같이 연속된 소수의 합으로 나타낼 수 없는 경우도 있다. 3. 주어진 자연수를 연속된 소수의 합으로 나타낼 수 있는 경우의 수는? 입력이 최대 400만이었다. 먼저 든 생각은 400만 이하의 자연수 중에 소수는 몇 개이고, 어떻게 구해야하나..? 문제의 카테고리가 정수론인만큼 정수론의 에라토스테네스의 체를 참고하였다. https://namu.wiki/w/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98%20%EC%B2%B4 에라토스테네스의 체 - 나무위키 임의의 자연수 n에 대해 그 이하의 ..