Baby Yoshi Blinking
파이썬 알고리즘 문제풀이 입문] 자료구조 활용 (스택, 큐, 해쉬, 힙) - 후위표기식 만들기 (스택)
·
💻 코딩테스트/파이썬 알고리즘 문제풀이
*문제 본문은 강의 내용과 관련되어 있어 자세하게 적지 않았습니다. 문제 중위표기식이 입력되면 후위표기실으로 변환하는 프로그램을 작성하세요. 중위표기식은 우리가 흔히 쓰는 표현식입니다. 즉 3+5와 같이 연산자가 피연산자 사이에 있으면 중위표기식 입니다. 후위표기식은 35+와 같이 연산자가 피연산자 뒤에 있는 표기식 입니다. ex) 3+5*2 → 352*+ 풀이 • 답안 : Python import sys input = sys.stdin.readline e = input().rstrip() stack = list() result = "" for i in e: if i.isdecimal(): result += i else: if i == '(': stack.append(i) elif i=='*' or i=..
[파이썬 알고리즘 문제풀이 입문] 자료구조 활용 (스택, 큐, 해쉬, 힙) - 쇠막대기 (스택)
·
💻 코딩테스트/파이썬 알고리즘 문제풀이
*문제 본문은 강의 내용과 관련되어 있어 자세하게 적지 않았습니다. 문제 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저의 배치는 다음 조건을 만족한다. - 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. (쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓는다.) - 각 쇠막대기를 자르는 레이저는 적어도 하나 존재한다. - 레이저는 어떤 쇠막대기의 양 끝점과도 겹치지 않는다. 이런 레이저와 쇠막대기의 배치는 다음과 같이 괄호를 이용하여 왼쪽부터 순서대로 표현할 수 있다. 1. 레이저는 여는 괄호와 닫는 괄호의 인접한 쌍 '(..
[파이썬 알고리즘 문제풀이 입문] 자료구조 활용 (스택, 큐, 해쉬, 힙) - 가장 큰 수 (스택)
·
💻 코딩테스트/파이썬 알고리즘 문제풀이
*문제 본문은 강의 내용과 관련되어 있어 자세하게 적지 않았습니다. 문제 선생님은 현수에게 숫자 하나를 주고, 해당 숫자의 자릿수들 중 m개의 숫자를 제거하여 가장 큰 수를 만들라고 했습니다. 여러분이 현수를 도와주세요. (단, 숫자의 순서는 유지해야 합니다.) 풀이 • 답안 : Python import sys input = sys.stdin.readline num, m = map(int, input().split()) num = list(map(int, str(num))) stack = list() for x in num: # 숫자빼주는 로직 # stack -> 비어있으면 False, 비어있지X면 True # 비어있지않고 / 뺀횟수가 0보다 크고 / 가장 최근값이 나보다 작을 때 while stack ..
[파이썬 알고리즘 문제풀이 입문] 이분탐색(결정알고리즘) & 그리디 알고리즘 - 증가수열 만들기(그리디)
·
💻 코딩테스트/파이썬 알고리즘 문제풀이
*문제 본문은 강의 내용과 관련되어 있어 자세하게 적지 않았습니다. 문제 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)) ..
백준[10816] - 숫자 카드 2
·
💻 코딩테스트/백준
문제 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 작성한 코드 • 처음 작성한 코드 import sys input = sys.stdin.readline N = int(input()) N_list = list(map(int, input().split())) N_list.sort() M = int(input()) M_list = list(map(int, input().split())) for card in M_list: lt = 0 rt = N-1 count = 0 isExit..
백준[1920] - 수 찾기
·
💻 코딩테스트/백준
문제 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 작성한 코드 import sys input = sys.stdin.readline N = int(input()) A = list(map(int, input().split())) A.sort() M = int(input()) X = list(map(int, input().split())) for value in X: lt = 0 rt = N-1 isExit = False while lt A[mid]: lt = m..
[파이썬 알고리즘 문제풀이 입문] 이분탐색(결정알고리즘) & 그리디 알고리즘 - 마구간 정하기
·
💻 코딩테스트/파이썬 알고리즘 문제풀이
*문제 본문은 강의 내용과 관련되어 있어 자세하게 적지 않았습니다. 문제 N개의 마구간이 수직선상에 있습니다. 각 마구간은 x1, x2, x3, ..., xN의 좌표를 가지며, 마구간 간에 좌표가 중복되는 일은 없습니다. 현수는 C마리의 말을 가지고 있는데, 이 말들은 서로 가까이 있는 것을 좋아하지 않습니다. 각 마구간에는 한 마리의 말만 넣을 수 있고, 가장 가까운 두 말의 거리가 최대가 되게 말을 마구간에 배치하고 싶습니다. C마리의 말을 N개의 마구간에 배치했을 때 가장 가까운 두 말의 거리가 최대가 되는 그 최대값을 출력하는 프로그램을 작성하세요. 풀이 • 답안 : Python import sys input = sys.stdin.readline def distance(mid): count = 1..
[파이썬 알고리즘 문제풀이 입문] 이분탐색(결정알고리즘) & 그리디 알고리즘 - 뮤직비디오
·
💻 코딩테스트/파이썬 알고리즘 문제풀이
*문제 본문은 강의 내용과 관련되어 있어 자세하게 적지 않았습니다. 문제 지니레코드에서는 불세출의 가수 조영필의 라이브 동영상을 DVD로 만들어 판매하려 한다. DVD에는 총 N개의 곡이 들어가는데, DVD에 녹화할 대에는 라이브에서의 순서가 그대로 유지되어야 한다. 순서가 바뀌는 것을 우리의 가수 조영필씨가 매우 싫어한다. 또한 한 노래를 쪼개서 두 개의 DVD에 녹화하면 안된다. 지니레코드 입장에서는 이 DVD가 팔릴 것인지 확신할 수 없기 때문에 이 사업에 낭비되는 DVD를 가급적 줄이려고 한다. 고민 끝에 지니레코드는 M개의 DVD에 모든 동영상을 녹화하기로 하였다. 이 때 DVD의 크기(녹화 가능한 길이)를 최소로 하려고 한다. 그리고 M개의 DVD는 모두 같은 크기여야 제조원가가 적게 들기 때..
// 코드 블럭 복사