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

출처:: programmers.co.kr/learn/courses/30/lessons/42586 분류:: 스택 1. 문제 이해 및 해결과정 1. 스택 1. progresses의 길이 만큼 for문을 돈다 2. for문 돌면서 현재 인덱스의 소요일수를 저장한다 3. 만약 인덱스가 첫번째면 , 스택에 추가한다. 4. 인덱스가 첫번째가 아니면 , 스택의 첫번째 원소와 소요일수를 비교한다 4-1) stack[0]보다 현재 소요일수를 같거나 작다면, stack에 소요시간을 넣는다 4-2) stack[0]보다 현재 소요일수를 크다면, 1)res에 stack의 길이를 추가 2) 스택비운다 3) 현재 소요일 수 추가한다. 2. 풀이방법 1. [ python ] 스택 import math def solution(prog..
출처:: programmers.co.kr/learn/courses/30/lessons/42583?language=python3 분류:: 스택,큐 1. 문제 이해 및 해결과정 1. 스택 1. 다리길이 만큼 bridge를 만들어 준다 2. bridge가 빌때까지 , (다리에 있는 모든 것이 지나갈때까지) 2-1. bridge는 왼쪽부터 빠져나가므로 왼쪽pop, 시간 증가 => 시간에 따라 무조건 진행되는 과정 3. 다리를 지나가야할 트럭이 있을 경우 3-1. 현재 다리를 지나가야할 트럭 + 현재 다리를 지나고 있는 트럭의 무게 합이 다리가 가능한 무게 보다 작거나 같으면, 현재 다리를 지나가야할 트럭을 다리에 추가해준다. 3-2. 현재 다리를 지나가야할 트럭이 들어가서 가능한 무게를 초과하다면, 가능한 무게..
출처:: programmers.co.kr/learn/courses/30/lessons/49993?language=python3 분류:: 1. 문제 이해 및 해결과정 - 스킬트리의 순서대로 끝까지 스킬을 완료하지 않아도 된다. skill=cde tree=bcd 인 경우가 가능하다 2. 풀이방법 1. [ python ] def solution(skill, skill_trees): cnt=0 for x in skill_trees: tmp="" #트리 중 skill에 있는 문자만 저장 for i in range(len(x)): if x[i] in skill: #skill에 있는 문자라면 tmp에 더해줌 tmp+=x[i] # print(tmp) flag=True for i in range(len(tmp)): #t..
출처:: programmers.co.kr/learn/courses/30/lessons/12940 분류:: 유클리드 호제법 1. 문제 이해 및 해결과정 hiruby.tistory.com/498 hiruby.tistory.com/503 2. 풀이방법 1. [ python ] def solution(n, m): answer = [] a,b=n,m while n!=0: n,m=m%n,n #나머지, 나누는 수 answer.append(m) #최대공약수 answer.append(a*b//m) #최소공배수 return answer 3. 오답원인 4. 알게된 점
출처:: https://www.acmicpc.net/problem/18405 분류:: bfs 1. 문제 이해 및 해결과정 - 바이러스가 낮은 번호부터 증식한다 ->큐에 낮은 바이러스 번호부터 넣어야한다. 2. 풀이방법 1. [ python ] bfs #경쟁적 전염 #https://www.acmicpc.net/problem/18405 import sys from collections import deque sys.stdin = open("input.txt","r") input=sys.stdin.readline n,k=map(int,input().split()) board=[list(map(int,input().split())) for i in range(n)] virus=[] #바이러스에 대한 정보 dh=..
출처:: https://www.acmicpc.net/problem/11866 분류:: 큐 1. 문제 이해 및 해결과정 2. 풀이방법 1. [ python ] 큐 #요세푸스 문제 0 #https://www.acmicpc.net/problem/11866 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)) res=[] while q: q.rotate(-(k-1)) res.append(q.popleft()) i=1 cnt=0 print("" %res[i]) else: print("%d, " %res[i],end='') 3..
출처:: https://www.acmicpc.net/problem/2164 분류:: 큐 1. 문제 이해 및 해결과정 2. 풀이방법 1. [ python ] 큐 #카드2 #https://www.acmicpc.net/problem/2164 import sys from collections import deque sys.stdin = open("input.txt","r") n=int(input()) q=deque() for i in range(1,n+1): q.append(i) while len(q)>1: q.popleft() card=q.popleft() q.append(card) print(q.pop()) 3. 오답원인 4. 알게된 점

출처:: https://www.acmicpc.net/problem/1068 분류:: dfs, 트리 1. 문제 이해 및 해결과정 2. 풀이방법 1. [ python ] 딕셔너리 이용 #트리 #https://www.acmicpc.net/problem/1068 import sys from collections import deque sys.stdin = open("input.txt","r") n=int(input()) #노드의 개수 tree={} parents=list(map(int,input().split())) #각 노드의 부모노드가 주어진다 d=int(input()) #삭제할 노드 for i in range(n): #트리의 형태 만들어 줌 tree[i]=[] #{0: [], 1: [], 2: [], 3:..