알고리즘 문제풀이/프로그래머스 4

[프로그래머스/Python/완벽탐색] Level 1 86491 - 최소직사각형

https://school.programmers.co.kr/learn/courses/30/lessons/86491 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Input: 가로 길이와 세로 길이 pair들을 element으로 가진 2차원 배열 가로와 세로는 서로 interchangable 하다. 따라서 가장 작은 직사각형을 만들기 위해선, 각 명함의 가로 세로 중 더 긴 변들을 비교하여 직사각형의 한 변을 만들고, 더 짧은 변들을 비교하여 직사각형의 다른 한 변을 만든다. 완전탐색 방법으로 각 명함을 확인하고, 길이가 긴 변들 중 가장 긴 변, 그리고 ..

[프로그래머스/Python/Sort] Level 2 42746 - 가장 큰 수

https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(numbers): numbers = list(map(str, numbers)) # string으로 변환 numbers.sort(key=lambda x: x*4, reverse=True) # 최대 길이가 4라서 4번 반복 ('1000') answer = ''.join(numbers) # 순서대로 concat해서 가장 큰 숫자 만들기 if answer[0] == '0': # '..

[프로그래머스/Python/Heap] Level 3 42627 - 디스크 컨트롤러

https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import heapq def solution(jobs): curr_time = 0 # 현재시점 answer = 0 # 각각의 작업이 소요된 시간의 합 idx = 0 heap = [] while idx < len(jobs): # 모든 job을 확인 for job in jobs: if 0

[프로그래머스/Python/스택큐] Level 2 42583 - 다리를 지나는 트럭

https://school.programmers.co.kr/learn/courses/30/lessons/42583 [프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/42583) Approach: Pop the first element of truck_weights as curr_truck Check the weight of current bridge. 2-1. If current weight + curr_truck is less than or equal..