일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- EOF
- 공주대 정보보호
- BOB
- 2501
- 2605
- Python
- Best of the Best
- BoB 7기
- 차세대 보안 리더 양성
- acmicpc
- 2506
- 11943
- 정보보호 영재원
- 5086
- text
- 11109
- 영재원
- 4101
- 10833
- 10995
- 1547
- 영재교육원
- 정보보호 영재교육원
- 리뷰
- 2965
- boj
- 차세대 보안 리더 양성 프로그램
- 5586
- BoB 후기
- 2476
- Today
- Total
목록프로그래밍_일반/백준 (356)
짱해커가 되어보자
* Solved 기준 브론즈5 단순 풀이 print('축하'*99)
문제 10845 문제와 비슷하나 push에서 front, back. pop에서 front, back 옵션이 추가로 붙은 것만 다르다 입력 : n(N : 1 ~ 10,000), n에 대한 출력 : 풀이 import sys from collections import deque q = deque() for _ in range(int(sys.stdin.readline())): l = sys.stdin.readline().split() if(l[0] == 'push_front'): q.appendleft(l[1]) elif(l[0] == 'push_back'): q.append(l[1]) elif(l[0] == 'pop_front'): print(q.popleft() if q else -1) elif(l[0] =..
문제 큐의 자료구조를 흉내내는게 목적이다 push, pop, size, empty, front, back의 명령어를 구현하면 된다 * pop은 맨 처음 데이터를 제거 및 출력해야 한다 입력 : n(N : 1 ~ 10,000), n에 대한 출력 : 풀이 문제를 잘 읽고 풀지 않아 pop 때문에 여러번 틀렸다 import sys from collections import deque q = deque() for _ in range(int(sys.stdin.readline())): l = sys.stdin.readline().split() if(l[0] == 'push'): q.append(l[1]) elif(l[0] == 'pop'): print(q.popleft() if q else -1) elif(l[0]..
문제 N개 만큼의 카드를 입력받고(l1), M개 만큼의 입력받은 수가 l1에 몇개가 있는지 각각 출력하는 것이 목적이다 N, M : N(1 ~ 500,000) 입력 : n, n에 대한 (N N N ...)(-10,000,000 ~ 10,000,000), m, m에 대한 (N N N ...)(-10,000,000 ~ 10,000,000) 출력 : m에 대한 (N N N ...) 풀이 l = {} input() for i in input().split(): if not i in l: l[i] = 0 l[i] += 1 input() for i in input().split(): print(l[i] if i in l else 0, end=' ')
문제 장부에 돈을 기입하고 총 금액을 출력한다 그러나 0이 입력되면, 바로 전에 작성한 숫자는 잘못된 숫자라 지워야 한다 입력 : n(N : 1 ~ 100,000), n에 대한 (N : 0 ~ 1,000,000) 출력 : 풀이 스택으로 해결하였다 l = [] for _ in range(int(input())): i = int(input()) if(i == 0 and l): l.pop() else: l.append(i) print(sum(l))
문제 이전 4949 번의 문제와 유사한 괄호가 제대로 닫혀있는지 판단하는 문제이다 N개의 문자열이 주어지며, 올바르면 YES 아니면 NO를 출력하면 된다 입력 : n(N : ..? 오타인듯하다), 출력 : 풀이 for _ in range(int(input())): s = [] for i in input(): if(i in '('): s.append(i) elif(i in ')'): if(s and s[-1]+i == '()'): del s[-1] else: s.append(i) print('NO' if s else 'YES')
문제 온전히 '.'으로만 끝날 때 까지 문자열을 입력하며, 입력받은 문자열이 '()' 아니면 '[]'으로 잘 닫혀있어야 yes 아닐 경우 no를 출력하면 된다 * 괄호가 없어도 yes * '.'이 입력되면 끝나야 한다 입력 : '.'을 받을 때 까지 출력 : 풀이 문자열을 입력받으며 '.'으로 끊었을 때 데이터가 없을 때까지 반복을 수행한다 반복을 수행하며 스택에 괄호를 쌓아두었다가 온전히 잘 닫히는 괄호를 만나면 해당 데이터를 지운다 import sys for l in sys.stdin: s, l = [], l.split('.')[0] if not l: break for i in l: if(i in '[('): s.append(i) elif(i in '])'): if(s and (s[-1]+i == '..
문제 N개의 카드 덱이 있으며, N을 맨 바닥으로 1부터 N까지 정렬되어 있다 이 때 마지막 한 장이 남을 때 까지, 맨위에 있는 카드는 제거, 그 밑 카드는 맨 아래로 옮기는걸 반복했을 때 마지막 남은 카드의 번호는 무엇인지 묻는 문제이다 입력 : n(N : 1 ~ 500,000) 출력 : 풀이 l, n = [0, 1, 2, 2] + [0] * 499997, int(input()) for i in range(4, n+1): l[i] = l[i-1] + 2 if(i-1 == l[i-1]): l[i] = 2 print(l[n])
문제 N개의 수를 입력받아 다음의 결과를 출력한다 산술 평균 중앙값 최빈값 : 여러개 있을 경우 두 번째로 작은 값 범위 : MAX - MIN * N은 홀수로 제공 n : N(1 ~ 500,000) 입력 : n(N : 1 ~ 500,000), (-4,000 ~ 4,000) 출력 : 조건 1,2,3,4 풀이 import sys from collections import Counter n = int(sys.stdin.readline()) l = sorted([int(sys.stdin.readline()) for _ in range(n)]) l_c = Counter(l).most_common() print( round(sum(l)/n), l[n//2], l_c[0][0] if n == 1 or l_c[0][1..