본문 바로가기
반응형

프로그래머스234

(Python/LV1)가장 가까운 같은 글자 문제출처: https://school.programmers.co.kr/learn/courses/30/lessons/142086 풀이: def solution(s): res =[] for i in range(0,len(s)): if s[i] not in s[:i]: res.append(-1) else: str = s[:i][::-1] res.append(str.find(s[i]) + 1) return res else 문은 만약 ban / a 일때 가장 가까운 a를 찾아야하므로 뒤집어진 ban를 닮을 str를 만들어주고 find로 가장 가까이 있는 인덱스 찾아서 인덱스는 0 부터 시작하니 1 을 더해줘서 리턴 다른 방법으로는 딕셔너리 방법이있음 def solution(s): answer = [] dic = .. 2022. 12. 18.
(Pyhton/Heap) 힙 (Heap) Heap :이진 트리의 한 종류 루투 노드가 언제나 최댓값, 최솟값 완전 이진 트리여야함 (레벨 k-2 까지는 모든 노드가 2개의 자식을 가진 포화 이진트로 , k-1 에서는 노드가 순차적) maxheap, minheap 이진탐색트리와의 비교 1, 완전한 크기순인가 >> 아니다 2. 빠르게 검색할 수 있는가 >> 아니다 >> 3. 부가 제약조건? >> 완전이진트리 여야함 최대힙 (Max Heap) __init__() : 빈 최대힙 생성 insert(item) - 새로운 원소 삽입 remove() 최대 원소를 반환 (root node) >> 동시에 삭제 표현 (배열 이용) 왼쪾 자식의 번호 : 2*m , 오른쪽은 2*m +1 부모 m // 2 노드 마지막 노드에서만 삭제/추가 가능 insert 구현 cla.. 2022. 12. 16.
(Python/LV3) 디스크 컨트롤러 문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이: def solution(jobs): lst = sorted(jobs,key=lambda x:(x[1])) start = 0 res = 0 while lst: for i in range(len(lst)): if lst[i][0] 17이다 res 는 (3,7, 17) // 3 을 해주면 9 가 나온다. lst.pop(i) 인 이유는 그냥 맨 왼쪽껄 빼면 [2,2],,,[1,4] 인.. 2022. 12. 14.
(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.
반응형