알고리즘 문제풀이 (6) 썸네일형 리스트형 [문제풀이] 백준 2252번 줄 세우기 문제 https://www.acmicpc.net/problem/2252 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net N명의 학생들을 키 순서대로 줄을 세우려고 한다. 각 학생의 키를 직접 재서 정렬하면 간단하겠지만, 마땅한 방법이 없어서 두 학생의 키를 비교하는 방법을 사용하기로 하였다. 그나마도 모든 학생들을 다 비교해 본 것이 아니고, 일부 학생들의 키만을 비교해 보았다. 일부 학생들의 키를 비교한 결과가 주어졌을 때, 줄을 세우는 프로그램을 작성하시오. 문제.. [문제풀이] 백준 2579번 계단 오르기 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 문제풀이 N = int(input()) score = [0] * 300 dp_table = [0] * 300 for i in range(N): score[i] = int(input()) dp_table[0] = score[0] dp_table[1] = max(score[0] + score[1], score[1]) dp_table[2] = max(score[0] + score[2], score[1] + score[2]) for i in range(3, N): dp_table[.. [문제풀이] 백준 2839번 설탕 개수 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 문제풀이 N = int(input()) count = 0 while N > 0: if N % 5 == 0: temp = int(N / 5) N -= 5 * temp count += temp break N -= 3 count += 1 if N == 0: print(count) else: print(-1) [문제풀이] 백준 13335번 트럭 13335번: 트럭 입력 데이터는 표준입력을 사용한다. 입력은 두 줄로 이루어진다. 입력의 첫 번째 줄에는 세 개의 정수 n (1 ≤ n ≤ 1,000) , w (1 ≤ w ≤ 100) and L (10 ≤ L ≤ 1,000)이 주어지는데, n은 다리를 건너는 트 www.acmicpc.net 1차 시도 total_count = 0 n, w, L = map(int, input().split()) trucks = list(map(int, input().split())) bridge = [0] * w while True: bridge.pop(0) total_count += 1 if len(trucks) > 0: if sum(bridge) + trucks[0] [문제풀이] 백준 2161번 카드01 1차 시도 import queue q = queue.Queue() trash = [] n = int(input()) for data in range(1, n+1): q.put(data) while q.qsize() != 1: # step-1 trash.append(q.get()) # step-2 q.put(q.get()) trash.append(q.get()) for t in trash: print(t, end=' ') 어려운 문제는 아니었다. Queue에서 enqueue와 dequeue를 잘 이해하고 FIFO를 잘 파악하고 있다면 어렵지 않게 풀수 있는 문제이다. [문제풀이] Stack - 균형잡힌 세상 1차 시도 while True: input_data = input() if input_data == '.': break input_data = input_data.replace(' ', "") stack = [] for character in input_data: if character == '(' or character == '[': stack.append(character) elif character == ')': if len(stack) != 0: last = stack.pop() if last != '(': print("no") stack = None break else: print("no") stack = None break elif character == ']': if len(stack) !=.. 이전 1 다음