전체 글

전체 글

    TIL] 알고리즘 기초

    알고리즘 성능 평가 시간 복잡도 : 특정한 크기의 입력에 대하여 알고리즘의 수행 시간 분석 공간 복잡도 : 특정한 크기의 입력에 대하여 알고리즘의 메모리 사용량 분석 동일한 기능을 수행하는 알고리즘이 있다면, 일반적으로 복잡도가 낮을수록 좋은 알고리즘입니다. 빅오 표기법 : 가장 빠르게 증가하는 항만을 고려하는 표기법 , 항수의 상한만을 나타내게 됩니다. 그리디 알고리즘 (탐욕 법) 그리디 알고리즘(탐욕 법)은 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미합니다! 일반적인 그리디 알고리즘은 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구합니다. 그리디 해법은 그 정당성 분석이 중요한데 단순히 가장 좋아 보이는 것을 반복적으로 선택하더라도 최적의 해를 구할 수 있는지 검토가 필요..

    TIL] 알고리즘 문제풀이 [백준] (1037, 2609, 10250)

    알고리즘 문제풀이 1037번 # 양수 A가 N의 진짜 약수가 되려면, N 이 A의 배수이고, A가 1 과 N이 아니어야 한다. # 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램 # N은 약수의 개수 N = int(input()) A = list(map(int, input().split())) max_number = max(A) min_number = min(A) print(max_number * min_number) # 약수가 모두 주어지기 때문에 가장 작은 값과 가장 큰 값을 곱하면 진짜 수를 구할 수 있다. 2609번 # 두 개의 자연수를 입력받아 최대 공약수와 최소 공배수 구하기 # 문제 접근 방식 : # 최대공약수: a 와 b의 최대공약수는 b 와 a를 나눈 나머지의 최대공약수..

    TIL] 알고리즘 문제 풀이 [백준] (2941, 2839, 1436)

    알고리즘 문제 풀이 2941 cro = ["c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="] # 크로아티아 알파벳 리스트입니다. word = input() for i in cro: # cro 리스트의 원소를 i에 넣어줍니다. word = word.replace(i, '*') # i 즉, input 을 받은 word 에 i 가 포함되어있다면 *로 바꿔줍니다. print(len(word)) # 문자열로 바꿔준다면 cro 에 두글자~세글자를 한 글자로 인식합니다! 2839 sugar = int(input()) cnt = 0 # 설탕을 몇 번 담았는지 나타내는 저장소 while sugar >= 0: # 설탕을 담은 갯수가 0보다 크거나 같을 때 까지 True if sugar ..