전체 글

Python/Coding Test

[자료구조 알고리즘] 빅오(Big-O) 표기법

빅오란, 알고리즘의 성능을 수학적으로 표현해주는 표기법이다. 이를 이용하여 알고리즘의 시간과 공간복잡도를 표현할 수 있다. 1. O(1), constant time 입력 데이터의 크기와 상관없이 언제나 일정한 시간이 걸리는 알고리즘을 의미한다. def array_zero(n): return (n[0] == 0) 위 함수를 보면 입력 데이터인 n의 0번째 인덱스의 숫자가 0이면 True를 0이 아니면 False를 반환한다. 이는 입력 데이터의 크기와 상관없이 언제나 일정한 시간이 걸린다. 2. O(n), linear time 입력 데이터의 크기와 비례하여 처리 시간이 걸리는 알고리즘을 의미한다. def array_print(n): for i in range(n): print(i) 위 함수를 보면 n이 하나..

Python/Coding Test

[백준] 1924 : 2007년 (파이썬 / Python)

2007년 https://www.acmicpc.net/problem/1924 1924번: 2007년 첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다. www.acmicpc.net 문제 오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? 이를 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지,..

Python/Coding Test

[백준] 10951 : A+B-4 (파이썬 / Python)

A+B-4 https://www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 각 테스트 케이스마다 A+B를 출력한다. 예제 입력 1 1 1 2 3 3 4 9 8 5 2 예제 출력 1 2 5 7 17 7 코드 while True: try: a, b = map(int, input().split()) print(a + b) exce..

Python/Data Analysis

[Machine Learning] 스태킹 앙상블

■ 스태킹 앙상블의 개요 스태킹(Stacking)은 개별적인 여러 알고리즘을 서로 결합해 예측 결과를 도출한다는 점에서 배깅(Bagging), 부스팅(Boosting)과 공통점을 가짐 하지만, 개별 알고리즘으로 예측한 데이터를 기반으로 다시 예측을 수행한다는 큰 차이점을 가짐 이 때, 기반 모델들이 예측한 값을 통해 메타 모델이 이를 학습하고 예측하는 모델 스태킹 모델의 핵심은 여러 개별 모델의 예측 데이터를 각각 스태킹 형태로 결합해 최종 메타 모델의 학습용 피처 데이터 세트와 테스트용 피처 데이터 세트를 만드는 것 ■ 스태킹 앙상블의 구체적인 프로세스 with python 위스콘신 암 데이터 세트에 기본 스태킹 모델을 적용해본다. 데이터 로딩 후 학습/테스트 데이터로 분할 # 필요한 모듈 불러오기 i..

Python/Syntax

[Python] collections 모듈의 defaultdict()

collections 모듈의 defaultdict()은 인자로 주어진 객체의 기본값을 딕셔너리 값의 초깃값으로 지정할 수 있다. 경우를 나누면 아래와 같다. defaultdict(int) : 디폴트 값이 int인 딕셔너리. 따라서 값을 설정하지 않는 키는 그 값이 0으로 지정됨 defaultdict(list) : 디폴트 값이 list인 딕셔너리. 따라서 값을 설정하지 않는 키는 그 값이 빈 리스트로 지정됨 defaultdict(set) : 디폴트 값이 set인 딕셔너리. 따라서 값을 설정하지 않는 키는 그 값이 빈 집합으로 지정됨 (=> 중복된 값을 없애고 고유한 값을 남기고 싶을 때 사용) 기본적인 작동방식을 예를 통해 한 번 살펴본다. defaultdict(int) >>> import collecti..

Python/Syntax

[Python] 비트 연산자

■ 비트 연산자 컴퓨터는 2진수(0, 1)를 사용하므로 파이썬에서는 2진수를 다루는 연산자를 제공한다. 일단, 10진수를 2진수로 바꾸는 이론적인 방법과 파이썬에서 2진수와 10진수를 변환하는 방법에 대해서 우선적으로 알아본다. 그리고 비트 논리 연산자와 시프트 연산자에 대해 알아볼 것이다. ■ [이론] 10진수 -> 2진수로의 변환 예시를 통해 이해해보도록 한다. 예를 들어 10진수 8을 2진수로 표현하면 1000이 된다. 이를 어떻게 구한 것일까? 몫을 구할 때의 기호를 반대로 뒤집은 듯한 모양으로 몫과 나머지를 반복해서 구해주고 나머지는 몫 옆에 적어준다. 즉, 8을 2로 나눈 몫은 4, 나머지는 0이므로 4 옆에 0을 적어주는 것이다. 이러한 방식을 몫이 1이 될 때까지 반복해서 구해준다. 이렇게..

semperparatus
semperparatus