일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DirectX12
- c++ 5567
- 렌더링 파이프
- 잔디 기부 캠페인
- depth-stencil
- 데이터 체커
- boj 5567
- 잔디 기부
- constant buffre
- 프로그래밍공부
- pcce 기출문제 풀이
- directx 그래픽스
- c++ 1991
- 백준 5567
- gemmasprint
- pcce 기출문제 9번 지폐 접기
- boj 1991
- PCCE
- root signature
- pcce 기출문제 10번 공원
- pcce 기출문제 10번 지폐 접기 풀이
- orthographic projection
- texture mapping
- pcce 기출문제 10번 공원 풀이
- boj 22942
- tessellation
- DirectX
- 오블완
- render target
- pccp 기출문제 풀이
- Today
- Total
목록오구의 코딩모험 (94)
오구의코딩모험
[SQL 고득점 KIT - SELECT] 중복된 USER_ID, PRODUCT_ID 를 찾는 것으로 문제를 해결 하였다. GROUP BY로 묶어준 후, HAVING 절을 이용하여 중복된 행을 COUNT 해준다. COUNT의 개수가 1이 넘는다면, 동일한 상품을 재구매한 데이터가 될 것이므로 정렬해주면 끝!! SELECT USER_ID, PRODUCT_ID FROM ONLINE_SALE GROUP BY USER_ID, PRODUCT_ID HAVING COUNT(*) > 1 ORDER BY USER_ID, PRODUCT_ID DESC
[SQL 고득점 KIT - SELECT] 보통의 SELECT 문제와 유사했지만, 전화번호가 NULL 인 경우를 출력대상에서 제외하는 조건과 생년월일 DATE FORMAT 이 동일해야하는 조건이 있었다. DATE_FORMAT(컬럼명, '%Y-%m-%d') # -> '2023-01-04' # %Y -> '2023' # %y -> '23' # %M -> 'January' # %m -> '01' 소문자와 대문자에 따라서 출력되는 형식도 다르니 알맞게 잘 쓰도록 하자! 다른 형식을 더 알아보고 싶다면 아래의 블로그를 참고! https://velog.io/@donghoim/MySQL-DATETIME-%EC%9B%90%ED%95%98%EB%8A%94-%EC%9C%A0%ED%98%95%EC%9C%BC%EB%A1%9C-..
[SQL 고득점 KIT - SELECT] 상반기 주문 정보 → FIRST_HALR (=F) 아이스크림 정보 → ICECREAM_INFO (=I) 상반기 주문 정보 테이블과 아이스크림 정보 테이블은 FLAVOR를 기본 키, 외래 키로 사용하고 있다. 그러하여 FLAVOR가 같은 경우를 찾아 문제의 조건인 총 주문량 3,000 초과, 아이스크림의 주 성분이 과일인 경우를 WHERE 절을 이용하여 추출해준다. 마지막으로 주문량이 큰 순서대로 조회 ORDER BY 는 오름차순이지만 DESC를 붙여줌으로써 내림차순 정렬을 했다. 끝 SELECT F.FLAVOR FROM FIRST_HALF AS F,ICECREAM_INFO AS I WHERE F.FLAVOR = I.FLAVOR AND F.TOTAL_ORDER>30..
[코딩테스트 고득점 KIT - 완전탐색] 모든 경우의 수를 탐색하기 위해 순열을 사용하였다. "011" 와 "11"은 같은 수 이기 때문에 중복 제거를 위해 answer을 set()로 만들어 주었다. 약수는 곱의 형태로 반복되기 때문에 제곱근+1 까지만 반복문을 실행한다. ex) 24의 약수 = 1, 2, 3, 4, 6, 8, 12, 24 →1*24, 2*12, 3*8, 4*6, 따라서 24는 2로 나눠지면서 12로도 나눠지는 수 나누어진다면, 1과 자기 자신만이 약수로 갖는 소수가 아닌 합성수이다. 합성수가 아닌 수는 소수. 소수를 담은 리스트의 길이를 반환하면 끝. from itertools import permutations import math def solution(numbers): # 중복 제..
[코딩테스트 고득점 KIT - 완전탐색] 순열을 이용하여 모든 피로도 소모 경우의 수를 계산해준다. 소모되어 줄어든 피로도를 HP 변수에 담으며, 남은 피로도인 HP가 탐험할 던전의 "최소 필요 피로도" 보다 높으면 피로도를 소모하여 탐험한다. 탐험 후 HP에서 소모한 피로도만큼 줄여준다. 끝 from itertools import permutations def solution(k, dungeons): answer = 0 ## permutations 순열 라이브러리 for dungeon in list(permutations(dungeons,len(dungeons))): # 탐험한 던전의 수 result = 0 # 남은 피로도 HP = k for root in dungeon: # 요구사항 if root[0]
[코딩테스트 고득점 KIT - 완전탐색] 가로의 길이가 세로의 길이 보다 길거나 같은 조건과 갈색 카펫이 노란 카펫을 둘러싼 것에 초점을 맞추면 쉽게 풀 수 있었다. 그림을 그리며 수식을 이해하는게 빠르다고 느꼈다. yellow가 2라면, 가로의 길이가 길기 때문에 2x1 일 것이며 24인 경우에는, 24x1, 12x2, 8x3, 6x4 으로 나눌 수 있다. yellow의 경우의 수 중, 총 타일 - yellow 과 brown이 같은 경우가 답이다. 총 타일은 그림을 통해 아래의 수식과 같이 표현할 수 있다! 끝 def solution(brown, yellow): for i in range(yellow,0,-1): if yellow % i ==0 and (i+2)*(yellow//i+2)-yellow =..
[코딩테스트 고득점 KIT - 정렬] 논문 인용 수를 역순으로 정렬하여 내림차순으로 탐색한다. 논문의 수인 l 보다 인용 수가 이상인 경우를 filter로 걸러낸 후, 리스트의 길이를 H에 담는다. H의 길이가 l 이상이고, H 이외의 인용 수가 l 이하라면 l이 곧 H-Index! 끝 def solution(citations): answer = 0 citations = sorted(citations,reverse=True) for l in range(len(citations),0,-1): H = len(list(filter(lambda x : x>= l,citations))) if H >= l and len(citations)-H
[코딩테스트 고득점 KIT - 정렬] 리스트 인덱스, 슬라이싱만 잘해주면 어려움 없이 풀 수 있는 문제였다! 끝 def solution(array, commands): return [sorted(array[com[0]-1:com[1]])[com[2]-1] for com in commands]
[코딩테스트 고득점 KIT - 힙] 힙 파트 문제였지만, jobs의 길이가 최대 500이기에 리스트와 정렬로 충분히 풀 수 가 있었다. jobs 배열을 요청시간 기준으로 오름차순으로 정렬하기, 요청시간으로 정렬하고 만약 같다면 소요시간을 기준으로 정렬 테스크 처리 도중에 들어온 테스크들은 요청시간과 상관없이 소요시간 기준으로 정렬, 이 경우가 각 작업의 요청부터 종료까지 걸린 시간의 평균 이 가장 적게 나온다. 테스크 처리 도중이 아닌 경우에는 가장 첫 번째 값 처리 위 3 가지를 고려하여 코드를 작성하였다. 문제 속에서 2번 요구사항을 파악하는게 중요한 문제였지만, 3번 예외사항을 놓치고 있어서 19번 테케에서 통과를 못해 고생했다. 끝 def solution(jobs): # 작업 소요시간, 요청 시점..
[코딩테스트 고득점 KIT - 힙] 힙큐(Heap Queue)와 우선순위 큐(Priority Queue)가 유사하다고 생각하여, 우선순위 큐를 사용하여 문제를 푸니 효율성 테스트에서 걸려 통과되지 않았다. 힙큐로 구현한 사람들이 많다하여, 왜 우선순위 큐로 하면 안되는건지 서칭을 하다... https://slowsure.tistory.com/130 아주 꼼꼼하게 써주신 글 덕분에 힙큐가 우선순위 큐보다 매우 빠르다는 것! - (PriorityQueue 는 Thread-Safe 하고 heapq는 Non-safe, 확인절차에서 시간) 문제는 힙큐에서 작은 순으로 빠져나오는 값을 리스트에 담아주며 K 값을 못넘는 경우 정해진 수식을 통하여 계산하고 다시 힙큐에 담는다. 이 과정을 반복하여 모든 값이 K 이상이..