Study 14

알고리즘[Algorithm] | 그리디(Greedy, 탐욕법)

그리디 알고리즘 현재 상황에서 지금 당장 좋은 것만 고르는 알고리즘 즉, 매 순간 가장 좋아 보이는 것을 선택하며, 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다. 기준에 따라 좋은 것을 선택하는 알고리즘이므로 "가장 큰 순서대로" 또는 "가장 작은 순서대로"와 같은 기준을 제시해준다. 아래는 책에 제공되어 있는 연습 문제인데, 문제는 검색하면 나와있으니 나는 내가 접근한 방식이나 풀이 위주로 글을 작성했다. [이코테] 실전문제 1: 큰 수의 법칙 처음엔 반복문으로 풀이하려고 접근했다가 문제를 계속 살펴보니 굳이 반복문을 사용하지 않고 풀 수 있을 것 같다는 생각이 들어 중간에 풀이를 한번 갈아엎었다. 가장 큰 수를 만들기 위해서는 숫자 배열 중 첫 번째로 큰 수, 두 번째로 큰 수만 필요하..

Study/Algorithm 2023.06.01

파이썬[Python] | 데이터 입출력 방법

입력 첫 번째 방법: input() 파이썬에서 데이터를 입력받기 위해서는 input()을 사용하면 된다. 알고리즘 문제를 풀 때 공백으로 구분되는 정수형 데이터를 입력받는 일이 많고, 이 입력된 데이터를 가공하여 문제를 풀게 된다. 이 경우엔 문자열을 띄어쓰기로 구분하여 각각 정수형으로 저장하는 코드를 자주 사용한다고 한다. input().split(): 공백으로 구분된 입력받은 데이터를 나누어 문자열 자료형 리스트로 변환한다. map(int, input().split()): 문자열로 저장되어 있는 리스트를 모두 정수형 데이터로 바꾸어준다. map 객체가 반환된다. list(map(int, input().split())): 반환된 map 객체를 다시 리스트로 변환한다. # input값이 1 2 3 일 때..

파이썬[Python] | 조건문, 반복문, 함수 (자바스크립트와 다른 점)

조건문 조건에 따라 로직을 설정할 수 있다. 자바스크립트를 사용하면서 필수로 사용했기에 익숙한 문법이다. 그래서 자바스크립트와 다르다고 생각한 부분을 정리해두려고 한다! 자바스크립트의 경우 아래 소스코드처럼 값을 범위에 포함시키려면 두 개의 조건으로 쪼갠 뒤 && 연산자를 사용해야 원하는 동작을 한다. 아래의 경우 'Bad'가 출력되며 60 < score 70) { console.log('Nice!'); } else if (60 < score && score

파이썬[Python] | 파이썬의 자료형

수 자료형 데이터는 모든 수로 표현할 수 있으며, 일반적으로 정수와 실수가 많이 사용된다. 정수형 양의 정수, 음의 정수, 0으로 이루어진 정수를 다루는 자료형 실수형 소수점 아래의 데이터를 포함하는 자료형 소수부 또는 정수부가 0인 소수는 0을 생략할 수 있다. # 소수부가 0일 때 a = 5. print(a) # 5.0 # 정수부가 0일 때 b = -.7 print(b) # -0.7 E나 e를 이용하여 지수 표현을 할 수 있는데, e 다음에 오는 수는 10의 지수를 의미한다. 1e9 = 10의 9 제곱 컴퓨터 시스템은 수 데이터를 처리할 때 2진수를 이용하는데, 실수의 경우 정확히 표현을 할 수 없다. 만약 0.3 + 0.6을 한다고 할 때 10진수 체계에서는 0.9로 딱 떨어지는데 2진수 체계에서는..

알고리즘[Algorithm] | 알고리즘 복잡도

복잡도 시간 복잡도: 특정한 크기의 입력에 대해 알고리즘이 얼마나 오래 걸리는지 의미 공간 복잡도: 특정한 크기의 입력에 대해 알고리즘이 얼마나 많은 메모리를 차지하는지 의미 동일한 기능을 수행하는 알고리즘이 있다면 일반적으로 복잡도가 낮을수록 좋은 알고리즘 시간 복잡도 빅오(Big-O)표기법을 사용 a = 5 b = 7 print(a + b) 위 소스코드의 연산 횟수는 1이므로 시간 복잡도는 상수 시간인 O(1)이 된다. array = [3, 4, 5, 6] summary = 0 for x in array: summary += x print(summary) 위 소스코드는 4개의 데이터를 차례로 4번 더해준다. 즉, 연산 횟수는 N개의 데이터에 비례함으로 시간 복잡도는 선형 시간인 O(N)이 된다. ar..

Study/Algorithm 2023.05.25