Problem Solving/Online Judge(57)
-
[BOJ] #1874 - 스택 수열
1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net ** 문제 유형 스택, 그리디 ** 풀이 스택에 원소 삽입시, 단순히 특정 수에 도달할 때까지 삽입 스택에서 원소를 연달아 빼낼 경우, 그 수들이 내림차순으로 빠지는지 확인 n = int(input()) cur = 1 stack = [] rslt = [] for i in range(1, n + 1): out = int(input()) while cur
2021.06.12 -
[BOJ] #2798 - 블랙잭
2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net ** 문제 유형 배열, 완전탐색 ** 풀이 카드 중 3개씩 뽑는 모든 경우의 수는 C(n, 3)이며, n은 최대 100 단순히 3중 반복문으로 모든 경우의 수를 확인하여 문제 해결 가능 -> 파이썬은 1초에 2천만개의 연산 수행 가능 # 방법 1 n, m = list(map(int, input().split(' '))) data = list(map(int, input().split(' '))) result = 0 length = ..
2021.06.12 -
[BOJ] #2920 - 음계
2920번: 음계 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8 www.acmicpc.net ** 문제 유형 배열, 구현 ** 풀이 입력 받은 리스트의 원소를 차례대로 비교 비교할 때, 인접한 두 원소를 기준으로 오름차순/내림차순 여부를 체크 a = list(map(int, input().split(' '))) ascending = False descending = False for i in range(1, len(a)): if a[i-1]
2021.06.11