일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 오픽가격
- 디피
- 메모이제이션
- ㅂ
- 안드로이드주석
- dp
- 영어회화
- stack 스택
- 안드로이드
- fibo
- 오픽점수잘받는방법
- XML주석
- opic
- 오픽
- 이진탐색
- 피보나치수열
- 영어말하기
- 다이나믹프로그래밍
- 탑다운
- dynamicProgramming
- 오픽노잼공부방법
- 이진탐색 #나무 자르기
- 주석
- XML
- topdown
- English
- 바텀업
- 오픽공부법
- 오픽노잼
목록PS/BOJ (143)
RUBY

출처:: www.acmicpc.net/problem/17298 분류:: 스택 1. 문제 이해 및 해결과정 - n의 숫자로 보았을 때, 이중 for문으로 풀면 시간초과 날 것이고, O(N),O(logN)을 고민해 봐야 한다 - 스택의 인덱스를 이용하여 push,pop한다. 1. stack의 인덱스를 순차적으로 이용한다 2. stack에 수가 있고, 현재 배열이 스택의 탑보다 크면 스택의 탑을 빼서(인덱스) 결과 인덱스 배열에 넣는다 3. 스택에 인덱스는 항상 추가한다. 2. 풀이방법 1. 스택 #오큰수 #https://www.acmicpc.net/problem/17298 import sys sys.stdin = open("input.txt","r") n=int(input()) #O(logN) O(N) O(..

출처:: www.acmicpc.net/problem/17413 분류:: 문자열 1. 문제 이해 및 해결과정 - 세 가지 변수를 두어 result에 저장한다. - . ' '는 저장하는 지점의 포인트가 된다 2. 풀이방법 1. #단어 뒤집기 2 #https://www.acmicpc.net/problem/17413 import sys sys.stdin = open("input.txt","r") flag=False #괄호가 열리는 것을 체크해주는 플래그 result='' #결과 tmp='' #괄호나 빈칸이 나올때까지 저장하는 임시변수 for ch in input(): #한글자 씩 if ch=='' tmp='' #괄호가 끝나면 result에 입력이 완료된 것이므로 초기화 elif ch==' ': result+= ..
출처:: www.acmicpc.net/problem/1929 분류:: 수학 1. 문제 이해 및 해결과정 - n이 백만이므로 시간복잡도를 고려해야한다 - 에라토스테네스의 체를 이용하면 O(NloglogN) 2. 풀이방법 1. 에라토스테네스의 체 #소수 구하기 #https://www.acmicpc.net/problem/1929 import sys import math sys.stdin = open("input.txt","r") m,n=map(int,input().split()) sosu=[True]*(n+1) sosu[1]=False for i in range(2,int(math.sqrt(n))+1): if sosu[i]: #소수라면 j = 2 while i*j
출처:: www.acmicpc.net/problem/1874 분류:: 스택 1. 문제 이해 및 해결과정 - 1~n까지 차례대로 push와 pop을 이용해서 주어진 수열을 만들 수 있는지 확인하는 문제 - 만들수 있다면 push는 + , pop은 -로 표현하고, 만들 수 없다면 NO를 출력한다 2. 풀이방법 1. 스택 #스택 수열 #https://www.acmicpc.net/problem/1874 import sys sys.stdin = open("input.txt","r") n=int(input()) stack=[] op=[] cnt=1 flag=True #수열을 만들 수 있는지 for i in range(n): num=int(input()) #입력받는 수열 while cnt
출처:: www.acmicpc.net/problem/9093 분류:: 문자열 , 스택 1. 문제 이해 및 해결과정 1. 파이썬 문자열 이용 1). 띄어쓰기 단위로 리스트에 넣음 ['I', 'am', 'happy', 'today'] 2). 리스트에서 출력할 때 뒤집어서 출력하고 띄어쓰기 넣기 2. 풀이방법 1. 문자열 #단어뒤집기 #https://www.acmicpc.net/problem/9093 import sys sys.stdin = open("input.txt","r") n=int(input()) for i in range(n): sent=input() data=list(sent.split(' ')) #띄어쓰기 단위로 list를 만듬 for x in data: #출력할 때 문자열 반대로 출력 prin..
출처:: https://www.acmicpc.net/problem/1158 분류:: 큐, 원형큐 1. 문제 이해 및 해결과정 - 원형 큐로 해결 2. 풀이방법 1.원형 큐 #요세푸스 문제 #https://www.acmicpc.net/problem/1158 import sys from collections import deque sys.stdin = open("input.txt","r") n,k=map(int,input().split()) q=deque(i for i in range(1,n+1)) cnt=0 result=[] while q: q.rotate(-(k-1)) result.append(q.popleft()) print("" %result[i]) 3. 오답원인 4. 알게된 점 deque.rotat..

출처:: www.acmicpc.net/problem/11052 분류:: dp 1. 문제 이해 및 해결과정 - dp: 카드 N개를 갖기 위해 지불해야 하는 금액의 최댓값 - dp[i] = max( dp[i] , dp[i-j] + p[j] ) 1

출처:: www.acmicpc.net/problem/1406 분류:: 스택 1. 문제 이해 및 해결과정 - 두 개의 스택을 이용해서 풀 수 있으며 스택의 top이 커서가 된다. 투스택 - 스택1번이 커서 왼쪽 , 스택 2번이 커서 오른쪽이 된다 - 1. 스택 두개를 만든다. - 2. 초기 문자열을 스택1번에 넣는다 - L : 커서 왼쪽으로, 첫번째 스택의 top을 두번째 스택으로 push - B : 커서왼쪽의 문자삭제 , 첫번째 스택의 top을 pop - D : 커서를 오른쪽으로 , 두번재 스택의 top을 첫번재 스택으로 push - P : 문자하나를 추가한다. => 스택1번에 append 2. 풀이방법 1. 투 스택 #에디터 #https://www.acmicpc.net/problem/1406 impor..