일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 안드로이드주석
- 피보나치수열
- XML주석
- 영어회화
- opic
- 디피
- 다이나믹프로그래밍
- English
- 오픽점수잘받는방법
- 오픽노잼공부방법
- 주석
- dynamicProgramming
- 메모이제이션
- XML
- topdown
- fibo
- 이진탐색
- 오픽공부법
- 이진탐색 #나무 자르기
- 바텀업
- stack 스택
목록분류 전체보기 (298)
RUBY
출처:: D기업 프로그래밍 콘테스트 예선 분류:: 정렬 1. 문제 이해 및 해결과정 - 점수, 이름으로 묶은 뒤에 점수를 기준으로 정렬을 수행해야한다. 2. 풀이방법 #성적이 낮은 순서로 학생 출력하기 # import sys sys.stdin = open("input.txt", 'rt', encoding='UTF8') n=int(input()) print(n) arr=[] for i in range(n): inputdata = input().split() arr.append((inputdata[0],int(inputdata[1]))) #키를 이용하여 점수를 기준으로 정렬 arr = sorted(arr,key=lambda student: student[1]) for student in arr: print(..
출처:: T기업 코딩 테스트 분류:: 정렬 1. 문제 이해 및 해결과정 2. 풀이방법 1. sort()이용- 내장함수 #위에서 아래로 # import sys sys.stdin = open("input.txt","r") n=int(input()) li=[] for i in range(n): li.append(int(input())) li.sort(reverse=1) print(li) 2. 기본 정렬 라이브러리 이용 #위에서 아래로 # import sys sys.stdin = open("input.txt","r") n=int(input()) li=[] for i in range(n): li.append(int(input())) li = sorted(li,reverse=True) for x in li: pri..
선택정렬 : 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸고 , 그 다음 작은 데이터를 선택해앞에서 두번째 데이터와 바꾸는 과정을 반복 - 가장 작은 것을 선택한다 는 의미에서 선택 정렬 - N-1번 만큼 가장 작은 수를 찾아서 맨 앞으로 보내야 된다 : N +(N-1) + .. + 2 -> (N)(N+1)/2 => O(n^2) - 10000 개 이상의 데이터 부터 급격히 늦어짐 #선택정렬 # import sys sys.stdin = open("input.txt","r") arr = [7,5,9,0,3,1,6,2,4,8] for i in range(len(arr)): min_index=i #가장 작은 원소의 인덱스 for j in range(i+1,len(arr)): if arr[min_inde..
출처:: 분류:: DFS 1. 문제 이해 및 해결과정 2. 풀이방법 1. DFS #음료수 얼려 먹기 # import sys sys.stdin = open("input.txt","r") n,m=map(int,input().split()) dh=[-1,1,0,0] dw=[0,0,-1,1] visited=[[0]*m for _ in range(n)] board = [list(map(int, input())) for _ in range(n)] def DFS(h,w): visited[h][w] = 1 for i in range(4): nh=h+dh[i] nw=w+dw[i] if nh>=n or nh=m or nw=n or h=m or w
출처:: 분류:: 시뮬레이션 1. 문제 이해 및 해결과정 2. 풀이방법 1. 시뮬레이션 #게임 개발 # import sys sys.stdin = open("input.txt","r") sizeh,sizew=map(int,input().split()) h,w,dir=map(int,input().split()) visited=[[0]*sizew for _ in range(sizeh)] visited[h][w]=1 #출발 좌표 방문 처리 dh=[-1,0,1,0] dw=[0,1,0,-1] board=[] for i in range(sizeh): board.append(list(map(int,input().split()))) def turn_left(): global dir dir=(dir+3)%4 cnt=1 t..
출처:: 1. 문제 이해 및 해결과정 2. 풀이방법 1. 방향을 dh,dw나누어서 풀 때 #왕실의 나이트 # import sys sys.stdin = open("input.txt","r") start=input() sh=int(ord(start[0])-96) sw=int(start[1]) dh=[-2,-1,1,2,2,1,-1,-2] dw=[1,2,2,1,-1,-2,-2,-1] cnt=0 for i in range(8): nh=sh+dh[i] nw=sw+dw[i] if nh8: continue else: cnt+=1 print(cnt) 2. 방향을 한 리스트에 담은 경우 #왕실의 나이트 # import sys sys.stdin = open("input.txt","r") start=input() sh=int..
출처:: 분류::완전탐색 1. 문제 이해 및 해결과정 - 86400가지만 존재하므로 100000개도 안되서 완전탐색 가능 2. 풀이방법 1. 완전탐색 #시각 # import sys sys.stdin = open("input.txt","r") n=int(input()) cnt=0 for h in range(n+1): for m in range(60): for s in range(60): if '3' in str(h)+str(m)+str(s): cnt+=1 print(cnt) 3. 오답원인 4. 알게된 점 - 완전탐색 알고리즘은 가능한 경우의 수를 모두 검사해 보는 탐색방법 - 일반적으로 비효율적인 시간 복잡도를 가지고 있어 데이터 개수가 큰 경우에 정상적으로 동작하지 않을 수 있음 - 전체 데이터 개수가 ..
출처:: 분류:: 시뮬레이션 1. 문제 이해 및 해결과정 - 연산횟수는 이동횟수에 비례, O(n) 2. 풀이방법 1. 시뮬레이션: 일련의 명령에 따라서 개체를 차례대로 이동시킴 #상하좌우 # import sys sys.stdin = open("input.txt","r") n=int(input()) plans=input().split() dh=[-1,1,0,0] dw=[0,0,-1,1] dir=['U','D','L','R'] h,w=1,1 for plan in plans: for i in range(len(dir)): if plan==dir[i]: nh=h+dh[i] nw=w+dw[i] if nhn: continue h,w=nh,nw print(h,w) 3. 오답원인 4. 알게된 점 - 완전탐색: 모든 경..