일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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주석
- ㅂ
- 영어말하기
- 오픽점수잘받는방법
- opic
- 이진탐색
- English
- 탑다운
- 주석
- XML
- dynamicProgramming
- 메모이제이션
- 디피
- 오픽가격
- topdown
- 오픽노잼공부방법
- 이진탐색 #나무 자르기
- dp
- fibo
- stack 스택
목록PS/BOJ (143)
RUBY
출처::https://www.acmicpc.net/problem/14503 분류:: 시뮬레이션 1. 문제 이해 및 해결과정 2. 풀이방법 1. python #로봇 청소기 #https://www.acmicpc.net/problem/14503 import sys sys.stdin = open("input.txt","r") n,m=map(int,input().split()) r,c,d=map(int,input().split()) board=[list(map(int,input().split())) for _ in range(n)] dh=[-1,0,1,0] dw=[0,1,0,-1] board[r][c]=2 #현재 위치를 청소한다 cnt=1 def solve(h,w,d): global cnt while True: ..
출처:: www.acmicpc.net/problem/2529 분류:: dfs 1. 문제 이해 및 해결과정 2. 풀이방법 1. python #부등호 #https://www.acmicpc.net/problem/2529 import sys sys.stdin = open("input.txt","r") n=int(input()) op=input().split() #부등호 num=[False]*10 maxv,minv="","" #최대 최소 def check(i,j,op): if op=='': return i>j return True #같은 경우, 있을 수 없음 def dfs(cnt,s): global maxv,minv if cnt==n+1: if not len(minv): #최솟값이 없으면, 순서대로 하므로 최솟값..
출처:: www.acmicpc.net/problem/1644 분류:: 에라토스테네스의 체, 투포인터 1. 문제 이해 및 해결과정 - n이 400만으로 일반적인 소수찾는 알고리즘으로 탐색이 안된다 -> 에라토스테네스의 체 이용해야한다. - 1. 에라토스테네스의 체로 가능한 소수를 찾고 - 2. 투포인터로 연속된 소수의 합 가능한 경우를 센다 cf) 에라토스테네스의 체 hiruby.tistory.com/463 투포인터 hiruby.tistory.com/416 2. 풀이방법 #소수의 연속합 #https://www.acmicpc.net/problem/1644 import sys import math sys.stdin = open("input.txt","r") n=int(input()) arr=[True for ..
출처:: https://www.acmicpc.net/problem/1654 분류:: 이분탐색, 파라메트릭서치 1. 문제 이해 및 해결과정 2. 풀이방법 1. python #랜선자르기 #https://www.acmicpc.net/problem/1654 import sys sys.stdin = open("input.txt","r") k,n=map(int,input().split()) lan=[] for i in range(k): lan.append(int(input())) start,end=1,max(lan) while start
출처:: www.acmicpc.net/problem/2623 분류:: 위상정렬 1. 문제 이해 및 해결과정 2. 풀이방법 1. python #음악프로그램 #https://www.acmicpc.net/problem/2623 import sys from collections import deque sys.stdin = open("input.txt","r") n,m=map(int,input().split()) #노드 수, 정렬 수 graph=[[] for _ in range(n+1)] indegree=[0]*(n+1) for i in range(m): #그래프 그리기 data=list(map(int,input().split())) sub=data[0] #보조pd가 담당한 가수의 수 for j in range(..
출처:: www.acmicpc.net/problem/2003 분류:: 투포인터 1. 문제 이해 및 해결과정 2. 풀이방법 1. python #수들의 합 2 #https://www.acmicpc.net/problem/2003 import sys sys.stdin = open("input.txt","r") n,m=map(int,input().split()) arr=list(map(int,input().split())) s,e=0,0 cnt=0 sum=0 for s in range(n): while sum
출처:: https://www.acmicpc.net/problem/2805 1. 문제 이해 및 해결과정 - 나무의 최대 높이는 10억 , 이진탐색으로 탐색하면 log2(10^9) 약 31번 - 나무의 수가 최대 백만이므로 나무의 높이를 바꾸면서, 바꿀때마다 모든 나무를 체크 하는 경우 31*백만 = 3000만번의 연산이 필요하다 2. 풀이방법 1. 이분탐색 [python] #나무 자르기 #https://www.acmicpc.net/problem/2805 import sys sys.stdin = open("input.txt","r") n,m=map(int,input().split()) tree=list(map(int,input().split())) lt=0 rt=max(tree) res=0 def coun..
출처:: www.acmicpc.net/problem/1012 분류:: DFS 1. 문제 이해 및 해결과정 -DFS가 몇번 호출되는 가를 묻는 전형적인 문제 2. 풀이방법 -dfs #if 01 //유기농 배추 // https://www.acmicpc.net/problem/1012 #include #include //memset #define MAXN (50) using namespace std; int T, M, N, K; int map[MAXN + 5][MAXN + 5]; int visited[MAXN + 5][MAXN + 5]; int dh[] = { -1,1,0,0 }; int dw[] = { 0,0,-1,1 }; void DFS(int h, int w) { visited[h][w] = 1; for ..