Programmers / 3단계 / 이중우선순위큐 / python / heapq
·
코딩테스트/programmers (python)
코딩테스트 연습 - 이중우선순위큐 | 프로그래머스 스쿨 (programmers.co.kr) 모범 답안 import heapq def solution(operations): q = [] for i in operations: oper, num = i.split() num = int(num) if oper == 'I': heapq.heappush(q, num) elif oper == 'D' and num == 1: if len(q) != 0: q.remove(max(q)) else: if len(q)!=0: heapq.heappop(q) if len(q) == 0: answer = [0,0] else: answer = [max(q), heapq.heappop(q)] return answer 학습한 것 heap..
다익스트라(dijkstra) 알고리즘 파이썬 구현 코드
·
코딩테스트/programmers (python)
다익스트라 알고리즘 구현 코드 import heapq def dijkstra(graph, start): distances = { node : float('inf') for node in graph} distances[start] = 0 queue = [] heapq.heappush(queue, [start, distances[start]]) while queue: now, now_dist = heapq.heappop(queue) if distances[now] < now_dist: continue for new, new_dist in graph[now]: distance = now_dist + new_dist if distance < distances[new]: distances[new] = distan..
Programmers / 3단계 / 단어 변환 / python / DFS/BFS
·
코딩테스트/programmers (python)
코딩테스트 연습 - 단어 변환 | 프로그래머스 스쿨 (programmers.co.kr) 모범 답안 최소 단계를 구하는 것이므로 BFS로 접근 from collections import deque def solution(begin, target, words): if target not in words : return 0 return bfs(begin, target, words) def bfs(begin, target, words): queue = deque() queue.append([begin, 0]) #시작 단어와 단계 0으로 초기화 while queue: now, step = queue.popleft() if now == target: return step for word in words: count..
Programmers / 3단계 / 정수 삼각형 / python / 동적계획법(Dynamic Programming)
·
코딩테스트/programmers (python)
코딩테스트 연습 - 정수 삼각형 | 프로그래머스 스쿨 (programmers.co.kr) 모범 답안 def solution(triangle): floor = len(triangle) - 1 # N층의 인덱스 while floor > 0: # N, N-1,...2, 1 for i in range(floor): # N번째 인덱스엔 0~N-> N+1개의 숫자가 있음 # 바로 위층의 칸에 아래칸의 두개중 큰값을 더해줌 triangle[floor-1][i] += max(triangle[floor][i], triangle[floor][i+1]) floor -= 1 # 층하나 올라가기 return triangle[0][0]
[데이터 분석] LabelEncoding, fillna, inplace 옵션
·
데이터 분석
https://dacon.io/competitions/official/235713/talkboard/402821?page=1&dtype=recent 데이콘 대회 데이터로 공부하며 새로 접한 개념 정리피처 (feature)데이터의 특성을 나타내는 것으로 데이터 표에서 열(column)을 지칭데이터 분석에서 표는 데이터의 특성을 나타내는 feature가 항상 열에 온다.  Label Encoding scikit learn의 대표적인 인코딩 방법 중 하나어떤 피처의 n개의 범주형 데이터를 0 ~ n-1개의 수치형 데이터로 변환한다.이 변환값이 수치적 차이를 나타내는 것은 아님.따라서 선형회귀 등의 알고리즘에 적용하기에 적합하지 않고, 트리 계열의 알고리즘에 적용하기 괜찮은 방법   from sklearn.pr..
Programmers / 1단계 / 신고 결과 받기 / python / 2022 KAKAO BLIND RECRUITMENT
·
코딩테스트/programmers (python)
코딩테스트 연습 - 신고 결과 받기 | 프로그래머스 스쿨 (programmers.co.kr) 나의 풀이 def solution(id_list, report, k): id_dict={x: 0 for x in id_list} rep_id={x: 0 for x in id_list} arr=[] id = [] for i in set(report): id_dict[i.split()[1]] +=1 for i in id_dict.keys(): if id_dict[i] >= k: id.append(i) for i in set(report): if i.split()[1] in id: rep_id[i.split()[0]]+=1 return [_ for _ in rep_id.values()] 모범 답안 def solutio..
Programmers / 2단계 / 배달 / python / Summer/Winter Coding(~2018)
·
코딩테스트/programmers (python)
코딩테스트 연습 - 배달 | 프로그래머스 스쿨 (programmers.co.kr) 모범 답안 import heapq def dijkstra(dist,adj): queue = [] heapq.heappush(queue, [0,1]) while queue: cost, node = heapq.heappop(queue) for c,n in adj[node]: if cost+c < dist[n]: dist[n] = cost+c heapq.heappush(queue, [cost+c,n]) def solution(N, road, K): dist = [float('inf')]*(N+1) dist[1] = 0 adj = [[] for _ in range(N+1)] for r in road: adj[r[0]].append..
Programmers / 2단계 / [3차] 파일명 정렬 / python / 2018 KAKAO BLIND RECRUITMENT
·
코딩테스트/programmers (python)
코딩테스트 연습 - [3차] 파일명 정렬 | 프로그래머스 스쿨 (programmers.co.kr) 모범 답안 import re def splitS(s): head = re.match('[\D]+', s) number = re.search('[0-9]+', s) file = [head[0], int(number[0]), s[number.end():]] return file def solution(files): newFile = [] for i, file in enumerate(files): s_file = splitS(file.lower()) s_file.append(i) newFile.append(s_file) newFile.sort(key = lambda x : (x[0], x[1], x[-1])) a..