목록✅🌲강의 복습 노트/이코테2021 알고리즘 훈련 (45)
컴퓨터공학 💻 도서관📚

구현이란, 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정이다 구현 문제는 언어에 따라 난이도가 상대적으로 달라지는 경향이 있다 일반적으로 많은 기업 코딩테스트 문제에서는 2차원 공간에서의 처리를 요구한다. 시뮬레이션 및 완전 탐색 문제에서는 2차원 공간에서의 방향 벡터가 자주 활용된다 구현 유형, 완전 탐색 유형, 시뮬레이션 유형은 서로 유사한 점이 많다

그리디 알고리즘 정당성 분석 : 공포도가 낮은 애부터 그룹으로 만들면 최대가 나오겠다는 아이디어 이를 실현하기 위해 공표도가 낮은 얘들을 먼저 보고 싶으니까 '오름차순 정렬' 테크닉 사용 그룹을 만드는 방법 / 디테일 : '현재 그룹에 포함된 모험가의 수'가 '현재 확인하고 있는 공포도'보다 크거나 같다면 이를 그룹으로 설정 N = int(input())data = list(map(int, input().split())) # 한 줄에 여러 개의 정수를 입력받는 방법data.sort() # 파이썬에서 오름차순 정렬하는 법count =0 # 초기화group_num =0for i in data: count += 1 # 모든 경우가 ..

정당성 분석 : 대부분의 경우 + 보다 * 가 더 큰 값을 만드는 것은 자명한 사실0과 1이 있을 때는 + 를 사용해야 값이 더 큼 연산을 진행하는 두 수 중에서 하나라도 0 or 1인 경우 + 를 하고 나머지는 * 를 한다 data = input()sum = 0for i in data: num = int(i) if num
문제 : 1이 될 때까지 어떤 수 N이 1이 될 때까지 다음 두 과정 하나를 반복적으로 수행하려고 한다. 단, 두 번째 연산은 N이 K로 나누어 떨어질 때만 선택할 수 있다. 1. N에서 1을 뺀다. 2. N을 K로 나눈다. 즉, 다시 말해 K로 나누어 떨어지는 수가 될때까지 1씩 빼는 거다. N과 K가 주어질 때 N이 1이 될 때까지 1,2번 과정을 수행해야 하는 최소 횟수를 구하는 프로그램을 작성하시오. 문제 해결 아이디어 주어진 N에 대하여 최대한 많이 나누기를 수행하면 최적의 해를 보장한다. K가 2 이상이기만 하면, K로 나누는 것이 1을 빼는 것보다 항상 빠르게 N을 줄일 수 있다. n, k = map(int, input().split()) # N, K를 공백을 기준으로 구분하여 입력 받기 r..
그리디 알고리즘(탐욕법) : 현재 상황에서 지금 당장 좋은 것만 고르는 방법 일반적인 그리디 알고리즘은 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구한다. (like. 수학) 그리디 해법은 정당성 분석이 중요하다.단순히 가장 좋아 보이는 것을 반복적으로 선택해도 최적의 해를 구할 수 있는지 검토해야 한다.일반적인 상황에서 그리디 알고리즘은 최적의 해를 보장할 수 없을 때가 많다.하지만 코딩 테스트에서의 대부분의 그리디 문제는 그리디로 얻은 해가 최적의 해가 되도록 세팅해 놓는다.그리고 우린 이 문제가 그리디 문제인지 추론할 수 있어야 한다.문제 : 거스름 돈500원, 100원, 50원, 10원 동전이 무한히 있다. 손님에게 거슬러 주어야 할 돈이 N원일 때, 거슬러 주어야 할 동전의 ..