Baby Yoshi Blinking
[파이썬 알고리즘 문제풀이 입문] 이분탐색(결정알고리즘) & 그리디 알고리즘 - 증가수열 만들기(그리디)
·
💻 코딩테스트/파이썬 알고리즘 문제풀이
*문제 본문은 강의 내용과 관련되어 있어 자세하게 적지 않았습니다. 문제 1부터 N까지의 모든 자연수로 구성된 길이 N의 수열이 주어집니다. 이 수열의 왼쪽 맨 끝 숫자 또는 오른쪽 맨 끝 숫자 중 하나를 가져와 나열하여 가장 긴 증가수열 을 만듭니다. 이때 수열에서 가져온 숫자(왼쪽 맨 끝 또는 오른쪽 맨 끝)는 그 수열에서 제거됩니 다. 풀이 • 답안 : Python import sys input = sys.stdin.readline N = int(input()) nums = list(map(int, input().split())) direction = "" result = list() lt = 0 rt = N-1 last = 0 while lt last: result.append((nums[lt],..
[파이썬 알고리즘 문제풀이 입문] 이분탐색(결정알고리즘) & 그리디 알고리즘 - 침몰하는 타이타닉(그리디)
·
💻 코딩테스트/파이썬 알고리즘 문제풀이
*문제 본문은 강의 내용과 관련되어 있어 자세하게 적지 않았습니다. 문제 유럽에서 가장 유명했던 유람선 타이타닉이 침몰하고 있습니다. 유람선에는 N명의 승객이 타고 있습니다. 구명보트를 타고 탈출해야 하는데 타이타닉에 있는 구명보트는 2명 이하로만 탈 수 있으며, 보트 한 개에 탈 수 있는 총 무게도 M kg 이하로 제한되어 있습니다. N명의 승객 몸무게가 주어졌을 때 승객 모두가 탈출하기 위한 구명보트의 최소 개수를 출력하는 프로그램을 작성하세요. 풀이 • 내 풀이 import sys input = sys.stdin.readline N, M = map(int, input().split()) weight = list(map(int, input().split())) weight.sort() count = ..
[파이썬 알고리즘 문제풀이 입문] 이분탐색(결정알고리즘) & 그리디 알고리즘 - 창고 정리
·
💻 코딩테스트/파이썬 알고리즘 문제풀이
*문제 본문은 강의 내용과 관련되어 있어 자세하게 적지 않았습니다. 문제 창고에 상자가 가로방향으로 일렬로 쌓여 있습니다. 창고 높이 조정은 가장 높은 곳에 상자를 가장 낮은 곳으로 이동하는 것을 말한다. 가장 높은 곳이나 가장 낮은 곳이 여러 곳이면 그 중 아무거나 선택하면 된다. 창고의 가로 길이와 각 열의 상자 높이가 주어집니다. m회의 높이 조정을 한 후 가장 높은 곳과 가장 낮은 곳의 차이를 출력하는 프로그램을 작성하세요. 풀이 • 내 풀이 (min, max 사용) import sys input = sys.stdin.readline L = int(input()) box = list(map(int, input().split())) M = int(input()) for i in range(M): l..
[파이썬 알고리즘 문제풀이 입문] 이분탐색(결정알고리즘) & 그리디 알고리즘 - 씨름 선수(그리디)
·
💻 코딩테스트/파이썬 알고리즘 문제풀이
문제 현수는 씨름 감독입니다. 현수는 씨름 선수를 선발공고를 냈고, N명의 지원자가 지원을 했습니다. 현수는 각 지원자의 키와 몸무게 정보를 알고 있습니다. 현수는 씨름 선수 선발 원칙을 다음과 같이 정했습니다. "다른 모든 지원자와 일대일 비교하여 키와 몸무게 중 적어도 하나는 크거나, 무거운 지원자만 뽑기로 했습니다." 만약 A라는 지원자보다 키도 크고 몸무게도 무거운 지원자가 존재한다면 A지원자는 탈락입니다. 풀이 • 답안 : Python import sys input = sys.stdin.readline N = int(input()) info = list() for i in range(N): a, b = map(int, input().split()) info.append((a, b)) info.s..
[파이썬 알고리즘 문제풀이 입문] 이분탐색(결정알고리즘) & 그리디 알고리즘 - 회의실 배정(그리디)
·
💻 코딩테스트/파이썬 알고리즘 문제풀이
*문제 본문은 강의 내용과 관련되어 있어 자세하게 적지 않았습니다. 문제 한 개의 회의실이 있는데 이를 사용하고자 하는 n개의 회의들에 대하여 회의실 사용표를 만들려고 한다. 각 회의에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 최대수의 회의를 찾아라. 단, 회의는 한 번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 풀이 • 답안 : Python import sys input = sys.stdin.readline N = int(input()) times = list() for i in range(N): a, b = map(int, input().split()) times.append((a, b)) ..
// 코드 블럭 복사