본문 바로가기

분류 전체보기

(237)
백준 1932 RGB 거리 문제. RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다. 집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구해보자. 1번 집의 색은 2번 집의 색과 같지 않아야 한다. N번 집의 색은 N-1번 집의 색과 같지 않아야 한다. i(2 ≤ i ≤ N-1)번 집의 색은 i-1번, i+1번 집의 색과 같지 않아야 한다. 풀이. 반복문에서 매 단계 최솟값만을 찾아서 더하면 안되고 조건을 만족하면서 최솟값을 찾아야한다. R에서 출발하는 최솟값, G에서 출발하는 최솟값, B에서 출발하는 최솟값의 경우를 찾아 마지막에 최솟값을 출력을 한..
백준 9461 파도반수열(파이썬) 문제. 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다. 파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다. P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다. N이 주어졌을 때, P(N)을 구하는 프로그램을 작성하시오. 풀이. P(1) 부터 P(10)까지의 수열을 보면 1, 1, 1, 2, 2, 3, 4, 5, 7, 9로 이루어져있다. P(6)부터는 값의 구성이 Fn = F(n-1) + F(n-5)로 값이된다. 즉 DP를 이용해서 값을 저장하..
텍스트 다루기 텍스트 정제하기 # 텍스트 생성 text = [" Interrobang. By Aishwarya Henriette ", "Parking And Going. By Karl Gautier", " Today Is The night. By Jarek Prakash "] # 공백문자 제저 strip_whitespace = [string.strip() for string in text] # 텍스트 확인 print(strip_whitespace) # 출력 ['Interrobang. By Aishwarya Henriette', 'Parking And Going. By Karl Gautier', 'Today Is The night. By Jarek Prakash'] # 마침표 제거 remove_peridos = [str..
범주형 데이터 다루기 순서가 없는 범주형 특성 인코딩하기 import numpy as np from sklearn.preprocessing import LabelBinarizer, MultiLabelBinarizer # 특성 생성 feature = np.array([["Texas"], ["California"], ["Texas"], ["Delaware"], ["Texas"]]) # 원-핫 인코더 생성 one_hot = LabelBinarizer() # 특성을 원-핫 인코딩 print(one_hot.fit_transform(feature)) # 결과 [[0 0 1] [1 0 0] [0 0 1] [0 1 0] [0 0 1]] # 특성의 클래스 확인 print(one_hot.classes_) # 결과 ['California' 'D..
수치형 데이터 다루기 특성 스케일 바꾸기 - 최소 최대 스케일링은 특성의 최솟값과 최댓값을 사용하여 일정 범위 안으로 값2을 조정한다. import numpy as np from sklearn import preprocessing # 특성 만들기 feature = np.array([[-500.5], [100.1], [0], [100.1], [900.9]]) # 스케일러 객체 생성 minmax_scale = preprocessing.MinMaxScaler(feature_range=(0, 1)) # 특성의 스케일을 변환 scaled_feature = minmax_scale.fit_transform(feature) # 출력 print(scaled_feature) # 결과 [[0. ] [0.42857143] [0.35714286] ..
디자인 패턴 관련 용어 ●MVC 패턴 - Model - View - Controller의 약자 - 하나의 어플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴 - Model 은 "무엇"을 할 것인지를 정의 - Controller는 모델이 "어떻게" 처리할 지를 알려주는 역할 - View는 화면에 "무엇"인가를 보여주기 위한 역할 장점 - 로직과 UI로직을 분리하여 유지보수를 독립적으로 수행할 수 있게 하는 장점이 있다. 단점 - View와 Model이 서로 의존성을 띄게 함. ●MVVM 패턴 - Model, View, View Model 로 구성 - View는 UI에 관련된 것 - View Model은 View가 사용할 메서드와 필드를 구현하고, 뷰에게 상태 변화를 알리는 역할 - Model은 비즈니스..
판다스(Pandas) 사용하기 데이터 프레임 만들기 import pandas as pd # 데이터 프레임 생성 df = pd.DataFrame() # 열 추가 df['Name'] = ['Jacky', 'Steven'] df['Age'] = [28, 23] df['Driver'] = [True, Flase] # 데이터프레임 출력 print(dataframe) #결과 Name Age Driver 0 Jacky 28 True 1 Steven 23 False # 열 생성 new_person = pd.Series(['Molly', 40, True], index = ['Name', 'Age', 'Driver']) # 열 추가 df = df.append(new_person, ignore_index=True) # 출력 print(df) # 결과 N..
객체 지향 프로그래밍 용어 정리 ●절차 지향 프로그래밍 - 물이 위에서 아래로 흐르듯이 순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법 -장점 1. 컴퓨터의 처리구조와 유사해 실행속도가 빠름 -단점 1. 유지보수가 어려움 2. 실행 순서가 정해져 있으므로 코드의 순서가 바뀌면 동일한 결과를 보장하기 어려움 3. 디버깅이 어려움 ●객체 지향 프로그래밍(OOP) - 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법 -장점 1. 코드의 재사용이 용이 2. 유지보수가 쉬움 3. 대형 프로젝트에 적합 -단점 1. 처리속도가 상대적으로 느림 2. 객체가 많으면 용량이 커질 수 있음 3. 설계시 많은 시간과 노력이 필요 ●클..