일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 티스토리챌린지
- c++ 5567
- 오블완
- pcce 기출문제 10번 공원 풀이
- gemmasprint
- DirectX12
- python 고대 문명 유적 탐사
- 백준 5567
- root signature
- c++ 1991
- boj 5567
- pcce 기출문제 10번 지폐 접기 풀이
- pcce 기출문제 9번 지폐 접기
- depth-stencil
- 렌더링 파이프
- directx 그래픽스
- DirectX
- pcce 기출문제 10번 공원
- pccp 기출문제 풀이
- 수식 복원하기
- texture mapping
- 잔디 기부
- 프로그래밍공부
- pcce 기출문제 풀이
- constant buffre
- PCCE
- 잔디 기부 캠페인
- 고대 문명 유적 탐사
- boj 1991
- 코드트리 고대 문명 유적 탐사
- Today
- Total
목록프로그래밍 공부/프로그래머스 (28)
오구의코딩모험
[코딩테스트 고득점 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 이상이..
[코딩테스트 고득점 KIT - 스택/큐] 이중 for문을 이용하여 기준으로 둔 i번째 가격이 그 다음에 나올 j초 후 가격과 비교하며 cnt 값을 증가시켰다. 마지막 값과 비교를 마치거나, 기준 가격보다 떨어진 경우 answer 값을 반환해준다. 마지막 가격은 비교할 대상이 없으므로 제외 시켰다가, 마지막에 0 값을 대입해주었다. 끝 def solution(prices): answer = [] for i in range(len(prices)): cnt = 1 for j in range(i+1,len(prices)): if prices[i] prices[j]: answer.append(cnt) break answer.append(0) return answer
[2022 KAKAO BLIND RECRUITMENT] from collections import defaultdict import math def floor(num): if num != int(num): return math.ceil(num) else: return num def time_cal(car_in,car_out="23:59"): car_out_h = car_out.split(":")[0] car_out_m = car_out.split(":")[1] car_in_h = car_in.split(":")[0] car_in_m = car_in.split(":")[1] hour_diff = int(car_out_h)-int(car_in_h) min_diff = int(car_out_m)-int(car..