일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 개수 세기
- 10926
- debugSymbolLevel
- 파이썬
- Android
- 백준1476
- 10430
- Counting The number
- baekjoon
- 새싹
- 1330
- safari world
- 브루트포스
- dp
- 25083
- 10807
- Class Delegation
- 사파리 월드
- BitMasking
- 백준
- kotlin
- 백준1107
- 꼬마 정민
- PreferenceManager
- 18108
- 기본메신저
- 2525
- 백준3085
- 디버그심볼
- 코틀린
- Today
- Total
목록백준 (88)
세상을 더 좋게
https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net from collections import deque n = int(input()) seq = list(map(int, input().split())) oh_big = [-1] * n #일단 오큰수 배열에 기본적으로 -1을 깔아놓기 stack = deque() for i in range(n) : while stack and (stack[-1][0] < seq[i]) : #스택이 잇고, 스택에 최근에 들어간 ..
https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net bar_razor = list(input()) answer = 0 stack = [] for i in range(len(bar_razor)) : if bar_razor[i] == '(' : stack.append('(') else : if bar_razor[i-1] == '(' : stack.pop() answer += len(stack) #괄호의 갯수가 막대기의 갯수가 되더라 else : stack.pop..
https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net import sys input = sys.stdin.readline s = input().rstrip() flag = False word = "" answer = "" for i in s : if flag == False : if i == "" : flag = False answer += word word = "" print(answer + word) 여기서 배운 ..
https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net from collections import deque import sys n = int(sys.stdin.readline()) dq = deque() for i in range(n) : cmd = list(sys.stdin.readline.split()) if cmd[0] == 'push_front' : dq.appendleft(cmd[1]) elif cmd[0] == 'push_..
https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net n, k = map(int, input().split()) arr = [i for i in range(1, n+1)] #1에서부터 배열로 늘여놓은 것. 이걸 원이라 생각하면 된다. answer = [] #답변 num = k-1 #리스트에 인덱스를 찍을 숫자. 인덱스이기에 -1을 함 for i in range(n): if len(arr) > num : answer.append(arr.pop(num)) num += k-1 elif len(arr)
https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net from sys import stdin n = int(stdin.readline()) queue = [] for i in range(n) : cmd = stdin.readline().split() if cmd[0] == "push" : queue.append(cmd[1]) elif cmd[0] == "pop" : if queue : print(queue.pop(0)) #큐는 스택과..
https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net from sys import stdin stack_l = list(stdin.readline().strip()) //커서를 기준으로 왼쪽 리스트 stack_r = [] //커서를 기준으로 오른쪽 리스트 n = int(input()) for _ in range(n) : temp = stdin.readline() if temp[0] == 'L' : if len(stack_l) == 0 : continu..
https://www.acmicpc.net/problem/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()) stack = [] //실제 주어지는 리스트를 스택으로 저장하는 리스트 result = [] //결과를 출력할 리스트 count = 1 // 숫자를 차례대로 넣는다는 문제에서 1부터 시작. temp = True for i in range(n): num = int(input()) whil..