일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- opic
- 오픽가격
- stack 스택
- 오픽공부법
- XML
- 주석
- 안드로이드
- 안드로이드주석
- 다이나믹프로그래밍
- English
- dynamicProgramming
- 영어말하기
- 오픽
- topdown
- XML주석
- 피보나치수열
- 디피
- ㅂ
- 이진탐색
- 이진탐색 #나무 자르기
- 탑다운
- 오픽점수잘받는방법
- 바텀업
- 오픽노잼
- 오픽노잼공부방법
- fibo
목록분류 전체보기 (298)
RUBY
출처:: k 대회 기출 분류:: 그리디 1. 문제 이해 및 해결과정 1. 첫번째 풀이 1) 동전 오름차순 정렬 후 2) 모든 경우 다해보고 나온 sum을 set에 넣음 3) 1부터 차례대로 인덱스와 값이 다른 지점의 인덱스가 만들 수 없는 최소값이다 => n이 1000이므로 2^1000 이되어 시간초과가 날 수 밖에 없다. 2. 그리디 - 거스름돈 문제는 각 화폐 단위마다 무한 개의 동전이 존재한다고 가정했는데, 이 문제에서는 동전의 수가 한정적이라는 점이 다르다 - 동전을 화폐 단위 기준으로 정렬한 뒤에, 화폐 단위가 작은 동전부터 하나씩 확인하면서 target변수를 업데이트 하는 방법으로 최적의 해를 계산할 수 있다. ex) 1 2 3 8 네 개의 동전이 있다고 가정 1) 처음에는 금액 1을 만들 수..
출처:: 2019 카카오 신입 공채 https://programmers.co.kr/learn/courses/30/lessons/42891 분류:: 그리디 1. 문제 이해 및 해결과정 - 모든 음식을 시간을 기준으로 정렬한 뒤에, 시간이 적게 걸리는 음식부터 제거해 나가는 방식을 이용한다는 아이디어까지는 생각하였다. 2. 풀이방법 1. 그리디(최소힙) import heapq def solution(food_times, k): #전체 음식을 먹는 시간보다 k가 크거나 같다면 -1 if sum(food_times)
출처:: 2019 sw마에스트로 입학 테스트 분류:: 그리디 1. 문제 이해 및 해결과정 1번 풀이 1) n개 중에 2명이 뽑는 경우의 수 2) 같은 무게를 뽑는 경우 => 1번 - 2번 2번 풀이 1) 각 무게 마다 볼링공 몇 개 있는지 2) 경우의 수 더하기 ex) 1 2 2 3 3 이라면 [1,2,2,] 1. A가 무게가 1인 공을 선택할 때 경우의 수 -> 1*4(B가 선택할 수 있는 경우의 수 5-1) = 4 2. A가 무게가 2인 공을 선택할 때 경우의 수 -> 2*2(B가 선택할 수 있는 경우의 수 4-2) = 4 3. A가 무게가 3인 공을 선택할 때 경우의 수 -> 2*0(B가 선택할 수 있는 경우의 수 2-2) = 0 => 8가지 2. 풀이방법 1. 조합 #볼링공 고르기 # ''' 5 ..
출처:: https://www.acmicpc.net/problem/13458 1. 문제 이해 및 해결과정 1. 각 시험장의 응시자 수를 배열에 넣음 2. 각 응시자 수를 총 감독 인원 수로 나눠서 CNT+=몫 3. 응시자 수에서 총감독이 감독한 인원 뺌 4. 응시자 수에서 총 감독 인원수 뺀 값에서 부감독 인원수로 나눈 몫의 올림을 더함 CNT+= 몫의 올림 *주의할 점 -시험장 수 * 각 시험장의 최대 학생수 = 10^ 12 ->int형 범위 넘음 => total은 long long %lld 써야함 2. 풀이방법 1. ceil 올림 함수 이용 #if 01 //시험 감독 //https://www.acmicpc.net/problem/13458 #include #include #include using na..
출처:: programmers.co.kr/learn/courses/30/lessons/12933 분류:: 1. 문제 이해 및 해결과정 2. 풀이방법 1. 리스트 def solution(n): li=list(str(n)) li.sort(reverse=1) answer=''.join(li) return answer 3. 오답원인 4. 알게된 점
출처:: programmers.co.kr/learn/courses/30/lessons/12935 분류:: 1. 문제 이해 및 해결과정 2. 풀이방법 1. python def solution(arr): answer = [] arr.remove(min(arr)) answer=arr[:] if not arr: answer=[-1] return answer 3. 오답원인 4. 알게된 점
출처:: www.acmicpc.net/problem/17779 분류:: 구현, 시뮬레이션 1. 문제 이해 및 해결과정 1. x,y,d1,d1의 경우의 수 구하기 => 20*20*20*20=16000가지 , 한 케이스마다 인구수의 합 10830*20*20 2. 5로 경계선 만들어 주기 3. 구역별로 계산하기 (5를 만나면 멈춘다) 2. 풀이방법 1. python #게리맨더링2 #https://www.acmicpc.net/problem/17779 import sys sys.stdin = open("input.txt","r") n=int(input()) board=[[0] * (n + 1)]+[[0]+list(map(int,input().split())) for _ in range(n)] total=0 res..
출처:: programmers.co.kr/learn/courses/30/lessons/12906 분류:: 1. 문제 이해 및 해결과정 2. 풀이방법 1. python def solution(arr): answer=[] answer.append(arr[0]) for i in range(len(arr)-1): if arr[i]!=arr[i+1]: answer.append(arr[i+1]) return answer 3. 오답원인 4. 알게된 점