반응형 Study with Yedol/코딩테스트 준비12 이코테 강의 몰아보기 | 2-2. 그리디 & 구현 [3] 실전 문제 1. 그리디 #3-1. 큰 수의 법칙(Page92) 아이디어 : 전형적인 그리디 알고리즘 문제로, 입력값 중에서 가장 큰 수와 두 번째로 큰 수만 저장하면 된다. 연속으로 더할 수 있는 횟수는 최대 K번이므로 '가장 큰 수를 K번 더하고 두 번 째로 큰 수를 한 더 더하는 연산'을 반복 #N, M, K를 공백으로 구분하여 입력받기 n,m,k = map(int,input().split()) # N개의 수를 공백으로 구분하여 입력 받기 data = list(map(int,input().split())) data.sort() #입력받은 수 정렬 first = data[n-1] #가장 큰 수 second = data[n-2] #두 번째로 큰 수 result = 0 while True: for .. 2024. 4. 23. 이코테 강의 몰아보기 | 2-1. 그리디 & 구현 [1] 그리디 1. 그리디 알고리즘 : 탐욕법이라고도 하며 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미한다. - 일반적인 상황에서 그리디 알고리즘은 최적의 해를 보장할 수 없을 때가 많다. 하지만 코딩 테스트에서의 대부분 그리디 문제는 탐욕법으로 얻은 해가 최적의 해가 되는 상황에서, 이를 추론할 수 있어야 풀리도록 출제된다. #3-1 거스름돈(Page.87) 아이디어 : 최적의 해를 빠르게 구하기 위해서는 가장 큰 화폐 단위부터 돈을 거슬러 주면 된다. 정당성 분석 : 큰 단위가 항상 작은 단위의 배수이므로 작은 단위의 동전들을 종합해 다른 해가 나올 수 없기 때문이다. #3-1. 거스름돈 n = 1260 #예를들어 1260원을 거슬러줘야 됨 count = 0 #큰 단위의 화폐부터 차례대로 .. 2024. 4. 23. 이코테 강의 몰아보기 | 1-2 파이썬 기초 문법 [1] 파이썬 기초 문법 1. 기본 입출력 1) 자주 사용되는 표준 입력 방법 - input() 함수는 한 줄의 문자열을 입력 받는 함수 - map() 함수는 리스트의 모든 원소에 각각 특정한 함수를 적용할 때 사용 ex. 공백을 기준으로 구분된 데이터를 입력 받을 때는 다음과 같이 사용 list(map(int, input().split())) ex. 공백을 기준으로 구분된 데이터의 개수가 많지 않다면, 단순히 다음과 같이 사용한다. a,b,c = map(int, input().split()) 2) 자주 사용되는 표준 출력 방법 - 파이썬에서 기본 출력은 print() 함수를 이용한다. 각 변수를 콤마(,)를 이용하여 띄어쓰기로 구분하여 출력할 수 있음. - print()는 기본적으로 출력 이후에 줄 바.. 2024. 4. 22. 이코테 강의 몰아보기 | 1-1 파이썬 기초 문법 [1] 파이썬 기초 문법 이해하기 1. 복잡도(Complexity) - 시간 복잡도 : 특정한 크기의 입력에 대하여 알고리즘의 수행 시간 분석 - 공간 복잡도 : 특정한 크기의 입력에 대하여 알고리즘의 메모리 사용량 분석 복잡도가 낮을수록 좋은 알고리즘이다! 1) 빅오 표기법 : 가장 빠르게 증가하는 항만을 고려하는 표기법(함수의 상항만 나타남) 2) 알고리즘 설계하기 - N의 범위가 500인 경우 : 시간 복잡도가 O(N^3) 알고리즘 설계 - N의 범위가 2,000인 경우 : 시간 복잡도가 O(N^2)알고리즘 설계 - N의 범위가 100,000인 경우 : 시간 복잡도가 O(NlogN)인 알고리즘 설계 - N의 범위가 10,000,000인 경우 : 시간 복잡도가 O(N)인 알고리즘 설계 2. 자료형 :.. 2024. 4. 22. 이전 1 2 3 다음 반응형