본문 바로가기
반응형

프로그래머스237

(Python/LV2) 배달 문제 출처:https://school.programmers.co.kr/learn/courses/30/lessons/12978 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이: import heapq def solution(N, road, K): graph = [[] for _ in range(N+1)] for i in range(len(road)): u, v, w = road[i] graph[u].append((v, w)) graph[v].append((u,w)) # 양 방향 이기 때문 dist = [float("inf") for _ in range(.. 2022. 12. 7.
(Python/LV2) 3 x n 타일링 문제출처: https://school.programmers.co.kr/learn/courses/30/lessons/12902?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이: def solution(n): dp = [0 for i in range(n+1)] dp[0],dp[2], = 1,3 for i in range(4,n+1,2): dp[i] = (dp[i-2] * 4 - dp[i-4]) % 1000000007 return dp[-1] if n % 2 == 0 else 0 f(0) 을 1로 해줬다. 점화식을 계산하는데 .. 2022. 12. 7.
(Python/이진트리) 이진트리(3) 이진 탐색트리: 모든 노드에 대해서 왼쪽 트리에 있는 데이터는 모두 현재 노드의 값보다 작고 오른쪽 노드는 반대 인 이진트리 힙큐랑은 다르다 힙큐는 맨 위 노드가 최솟값 노드 배열 이용/ 이진트리 이용 이진트리 : 장점 : 데이터 원소의 추가, 삭제가 용이 단점: 공간 소요가 큼 거의 O(logn) 임 노드는 키와 밸류를 가지고있음. insert (key, data) - 추가 remove(key) - 삭제 lookup(key) - 찾기 inorder() - 키 순서대로 데이터 나열 min(),max() -최소 최대 원소 삽입 구현 (insert) class Node: def __init__(self, key, data): self.key = key self.data = data self.left = No.. 2022. 12. 6.
(Python/LV2) 후보키 코드 문제 출처:https://school.programmers.co.kr/learn/courses/30/lessons/42890 풀이: 첫 시도: from itertools import combinations def solution(relation): row = len(relation) # 행 col = len(relation[0]) # 열 #가능한 속성의 모든 인덱스 조합 combi = [] for i in range(1, col+1): combi.extend(combinations(range(col), i)) arr = set() for i in combi: tmp = [tuple([item[key] for key in i]) for item in relation] if row == len(set(tmp.. 2022. 12. 6.
(Python/LV2) 타겟넘버 문제 출처: 풀이: bfs 이용 def solution(numbers, target): first = [0] for i in numbers: lst = [] for j in first: lst.append(j+i) lst.append(j-i) first = lst return first.count(target) 0 0+1 , 0-1 0+1+1, 0+1-1 0-1+1 , 0-1-1 이런식으로 first를 바꿔주면 된다 큐 bfs 이용 from collections import deque def bfs (numbers, target): res = 0 q = deque() length = len(numbers) q.append([-numbers[0], 0]) q.append([+numbers[0], 0]) w.. 2022. 12. 2.
(Python/LV2) 점 찍기 문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/140107 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이: 첫 시도인 만큼 정답 맞추기에 집중했다. 62.5점 def solution(k, d): list = set() angle = d**2 # 제곱 same_count = 0 for i in range(0,d,k): for j in range(i,d+1,k): if (i**2)+(j**2) 2022. 12. 2.
반응형