본문 바로가기

자료구조18

[프로그래머스] [Python] Level3_디스크 컨트롤러 https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr 1차 시도 import heapq def solution(jobs): jobR = [] jobs.sort() sum = jobs[0][1] #총 수행시간 for i in range(1, len(jobs)): jobR.append(list([jobs[i][1], jobs[i][0]])) # print(jobR) #[소요시간,요청시점] while(jobR): .. 2021. 8. 5.
[프로그래머스] [Python] Level2_주식가격 https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 1차 시도 def solution(prices): answer = [0 for i in range(0,len(prices))] prices_r = prices[::-1] for i in range(1,len(prices_r)): #앞에 나보다 작으면 break if prices_r[i-1] < prices_r[i]: an.. 2021. 8. 5.
[자료구조] | [Python] | DFS 깊이우선탐색 | BFS 너비우선탐색 1. 정의 https://www.youtube.com/watch?v=_hxFgg7TLZQ 2. 선언 Graph - 딕셔너리 dictionary DFS - 스택 stack BFS - 큐 queue itertools 3. 기본 매소드 List와 같다 4. 활용 - 순서에 집착하는 출력 - 모든 경로 다 해보기 - 비선형자료구조 탐색 2021. 8. 5.
[프로그래머스] [Python] Level3_여행경로 https://programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr dfs 사용하는 문제 1차 시도 def solution(tickets): graph = {} #dictionary = graph #dic key = 출발도시명 #dic value = 도착도시명 for ticket in tickets: graph[ticket[0]] = graph.get(ticket[0], []) + [ticket.. 2021. 8. 5.
[프로그래머스] [Python] Level2_카펫 https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 1차 시도 def solution(brown, yellow): # y_width * y_height = yellow # (y_width+2) * (y_height+2) = brown + yellow # y_width + y_height = brown/2-2 answer = [] for i in range(1, yellow+1): #가로=i, 세로 = yell.. 2021. 8. 5.
[Python] | permutations 사용법 | combinations 사용법 | 순열 | 조합 1. 정의 순열 : 몇 개를 골라 순서를 고려해 나열한 경우의 수 조합 : 몇 개를 골라 순서를 고려하지 않고 나열한 경우의 수 2. 선언 import itertools arr = ['A', 'B', 'C'] nPr = itertools.permutations(arr, 2) ##순열 #[('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')] nCr = itertools.combinations(arr, 2) ##조합 #[('A', 'B'), ('A', 'C'), ('B', 'C')] 3. 기본 매소드 4. 활용 https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3.. 2021. 8. 5.