일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 최단거리
- Python
- 프로그래머스
- 소트
- 최빈값
- 다익스트라
- 정렬
- 2중포문
- 월간 코드 챌린지 시즌2
- 덩치
- 그리디
- 스프링프레임워크
- sort
- 스택
- 그리디알고리즘
- 퇴각검색
- 소트인사이드
- 통계학
- 코딩테스트
- DFS
- 백트래킹
- 백준
- 스프링
- 동적계획법
- 동적
- 404에러
- Backtracking
- 코테
- 브루트포스
- 파이썬
- Today
- Total
목록코딩테스트/백준 (58)
취준생의 코딩테스트 연습기
# 문제 링크 www.acmicpc.net/problem/18258 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net # Soultion 1234567891011121314151617181920212223242526272829303132import sysfrom collections import deque n = int(input())q = deque() for _ in range(n): cmd = list(map(str, sys.stdin.readline().split())) if cm..
# 문제 링크 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 # Soultion (실패) 시간초과문제 발생 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import sys n= int(input()) a = list(map(int,sys.stdin.readline().split())) for i in range(len(a)): li = [] for j in a[i+1:]: if j > a[i]: li.append(j) if li: print(li..
# 문제 링크 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 # Soultion 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 #스택수열 n = int(input()) input_stack = [] for _ in range(n): input_stack.append(int(input())) input_st..
# 문제 링크 www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net # Soultion 닫는 괄호가 나왔을 때 바로 break를 이용하여 종료하지말고, li에 값을 아무거나 넣고 종료해야함 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 while(True): li = [] s = input() if s=='.': break for i in s: i..
# 문제 링크 www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net # Soultion 무한루프를 이용하여 문자열안에 '()'가 들어있으면 제거를 해주고 난 뒤, 제거를 한 문자열이 비어있으면 YES 아니면 NO를 출력하도록 구현 1 2 3 4 5 6 7 8 9 10 11 12 13 t = int(input()) for _ in range(t): s = input() while(1): if '()' not in s: break s =..
# 문제 링크 www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net # Soultion 간단하게 리스트를 이용하여 스택 구현. 1 2 3 4 5 6 7 8 9 10 k = int(input()) li = [] for _ in range(k): n = int(input()) if n==0: li.pop() else: li.append(n) print(sum(li)) cs 6. n의 값이 0이면 pop()함수를 이용하여 마지막 값 제..
# 문제 링크 www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net # Soultion 시간초과 문제가 발생하므로, 5줄에서 input() 대신 sys.stdin.readline()을 이용하여 읽어온다.파이썬에서는 리스트를 이용하여 스택으로 사용이 가능하다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import sys n = int(input()) stack = [] for ..
# 문제 링크 www.acmicpc.net/problem/11048 11048번: 이동하기 준규는 N×M 크기의 미로에 갇혀있다. 미로는 1×1크기의 방으로 나누어져 있고, 각 방에는 사탕이 놓여져 있다. 미로의 가장 왼쪽 윗 방은 (1, 1)이고, 가장 오른쪽 아랫 방은 (N, M)이다. 준규는 www.acmicpc.net # Soultion (실패) 재귀를 이용하여 문제를 풀었는데, 런타임 에러 (RecursionError)가 발생하였다. 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 32 n,m = map(int, input().split()) li = [] for _ in range(n): li..
# 문제 링크 www.acmicpc.net/problem/9461 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net # Soultion n번째 숫자 = (n-1 숫자 + n-5숫자) 1 2 3 4 5 6 7 8 9 t = int(input()) li = [1,1,1,2,2] for i in range(5, 100): li.append(li[i-1]+li[i-5]) for _ in range(t): n = int(input()) print(li[n-1]) cs 3. (n번째 숫자 = n-1 숫자 + n-5숫자) 이므로..
# 문제 링크 www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net # Soultion(실패) 메모리 초과문제로 실패하였다. 1 2 3 4 5 6 7 8 # 메모리 초과 n = int(input()) li = [1,2] for i in range(2,n): li.append((li[i-1]+li[i-2])) print(li[n-1]%15746) cs # Soultion(성공) 리스트에 저장할 때, 너무 큰 수를 넣어서 메모리초과문제가 발생하여15746을 나눈 나머지를 ..