코테 대비 python
-
백준_9095코테 대비 python/백준 2022. 2. 23. 19:55
많이 풀어보질 않다보니 런타임 에러가 날경우 대처하는 법이 미흡하다 #백준_9095 #방법의 수 구하기 이코테 바닥문제와 동일 무지성 풀이 시작 # T= int(input()) d=[0]*1001 for j in range(T): n = int(input()) d[1] =1 d[2] =2 d[3] =4 for i in range(4, n+1): d[i] = d[i-1]+d[i-2]+d[i-3] print(d[n]) 얻은것 1. 런타임에러 => 리스트 생성한거 먼저보기 2. 점화식 생각 간단히 하기
-
백준_1463코테 대비 python/백준 2022. 2. 23. 19:35
https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net # 1로만들기 n= int(input()) #a = min(a(n-1),a(n-2)+1) d=[0]*(n+1) for i in range(2, n+1 ): d[i] = d[i-1]+1 if d[i]%3==0: d[i] =min(d[i],d[i//3]+1) if d[i]%2==0: d[i] =min(d[i],d[i//2]+1) print(d[n]) 런타임 오류 떠서 당황?! 리스트 길이 조절 하여 해결 얻은것 1. DP문제 유형 파악 2. 점화식 생각 3. 이코테 복습
-
표현 공부코테 대비 python/백준 2022. 2. 22. 18:49
이코테에서 이진탐색 공부를 하다가 신선한 발상?! 나만몰랐던 발상?! 알게됨 ㅋㅋ #계수 정렬 n = int(input()) array = [0]*1000001 for i in input().split(): array[int(i)]=1 m = int(input()) x= list(map(int,input().split())) for i in x: if array[i]==1: print('yes',end=" ") else: print('no',end = " ")
-
백준_1026코테 대비 python/백준 2022. 2. 19. 16:33
https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net # 보물 # 길이가 N인 정수 배열 A와 B가 있다. # S값을 가장 작게 만들기 위해 A의 수를 재배열하자. # 단, B에 있는 수는 재배열 하면 안 된다. # S의 최솟값을 출력하는 프로그램을 작성하시오. N = int(input()) A= list(map(int,input().split())) B= list(map(int,input().split())) #B의 값에 따라 무조건 A값 ..
-
백준_1931코테 대비 python/백준 2022. 2. 19. 15:32
https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net #백준 연습문제 회의실 배정 #각회의 I에 대하여 시작과 끝 정해져 있고 각회의가 겹치지 않게 최대 개수 찾기 N = int(input()) #무조건 회의시간이 적으면 이득? #(1,4),(5,7),(8,11),(12,14) a=[] for i in range(N): s,e=map(int, input().split()) a.append([s,e,e-s]) #앞자리 수 가장 작은수 => 시작과 끝 가장작은수 => ???? #회의 시간이 24시간이 아닌것에 주목? #가장 작은 회의시간에서 스타트?? # 시작시간 정렬..
-
1이 될 때 까지코테 대비 python/백준 2022. 2. 18. 16:35
출처: 이코테 # 어떤수 N이 1이 될때 까지 두과정중 한가지를 반복적으로 시행 2번은 N이 K로 나누어 떨어질 때만 가능 N,K= map(int,input().split()) #사실상 1빼는 것보다 나누는게 무조건 이득인 상황 따라서 그리디 #카운트 초기화 count =0 #1일 때까지 계속 해야되므로 while문 사용 while N!=1: if N%K==0: N= N//K count+=1 else: N-=1 count+=1 print(count) =================================================== #답지 풀이 1 n, k =map(int, input().split()) result = 0 while n >=K: while n%k !=0: n-=1 result ..
-
숫자 카드 게임코테 대비 python/백준 2022. 2. 18. 14:04
출처: 이코테 #각 행마다 가장작은 수를 찾고 그중 가장큰 수 뽑아야함 n, m = map(int, input().split()) card_min=[] for i in range(n): a= list(map(int, input().split())) #리스트에 각 행의 최솟값들 저장 card_min.append(min(a)) #리스트 정렬로 줄세우기 card_min = sorted(card_min) card_min result = card_min[n-1] print(result) ======================================= #답지 풀이1 n,m = map(int, input().split()) result = 0 for i in range(n): data = list(map(in..
-
큰 수의 법칙코테 대비 python/백준 2022. 2. 18. 13:37
출처: 이코테 #가장큰수와 두번째수 만 구하면 된다는 생각을 떠올리기!! n,m,k= map(int,input().split()) a = list(map(int, input().split())) #m번 더하기, k=연속해서 더해지는수 #순서대로 정렬 = > 두번째수 찾기위해서 a=sorted(a) a max_1 = a[n-1] max_2 = a[n-2] result= (m//k)*max_1*k+(m%k)*max_2 print(result) ========================================== n,m,k =map(int,input().spilt()) data = list(map(int, input().split())) data.sort() first = data[n-1] second..