분류 전체보기 70

[Python] arg/configparser

configparser - 프로그램의 실행 설정을 파일에 저장 - Section, Key, Value 값의 형태로 설정된 설정 파일 사용 - 설정파일을 Dict 자료형으로 호출 후 사용 ~~.ini 파일을 처리할 때 사용하는 모듈 ini 파일? ini 파일은 프로그램 정보를 저장하는 텍스트 문서로, [섹션]과 그 섹션에 해당하는 키 = 값으로 구성된다. configparser는 이러한 형식의 ini 파일을 처리할 때 사용하는 모듈이다 [DEFAULT] USERNAME = hyeongwoo PASSWORD = 123456 로 구성된 config.ini 파일을 만드는 경우 import configparser config = configparser.ConfigParser() config.read('config..

[Python] OOP

Object Oriented Programming (객체 지향적 프로그래밍) 너무도 유명하고 많이 들었던, 파이썬을 대표하는 성질. 클래스 = 붕어빵 틀, 객체 = 각종 붕어빵 자동차 예제 등등.. 너무도 많이 봤다. 그런거 말고 새로 안것들 정리 OOP를 통한 모델링에서 필요한 3가지 1. Inheritance(상속) 부모 클래스로부터 속성과 Method를 물려받은 자식 클래스를 생성하는 것으로 class a(object): def __init__(self, name): self.name = name 을 만들었을 때 class b(a): pass 를 통해 a의 클래스 속성, method 전부를 물려받은 자식 클래스 b를 생성 가능하다. 2. Polymorphism(다형성) 같은 이름 메소드의 내부 로직..

[Python] Pythonic Code

Pythonic Code란? 다른 언어와 다르게 파이썬만의 특별한 코딩 스타일로 효율도 좋지만, '간지'가 난다. 주로 알고리즘 문제 사이트에 파이썬의 다른 사람 코드를 보면 단 한 줄의 코딩으로 문제를 푼 사람들이 있는데, 이런 코드의 댓글에는 사람들의 감탄이 주로 보인다. 간지나네요, 우와 파이써닉하네요 등등.. Split & Join 알고리즘 문제를 풀 때 엄청나게 썼던 작업. Split - string type의 값을 "기준값"으로 나눠서 List 형태로 변환 Join - string으로 구성된 리스트를 다시 하나의 string으로 변환 List Comprehension 역시 알고리즘 문제 풀이 때 코드를 짧게 할 수 있는 가장 큰 이유로, 제일 간지라고 생각한다.. 보이십니까? 코드 길이의 차이..

[Python] Function

파이썬에서 함수의 호출 방식 언어에서 함수가 호출을 받는 방식은 여러가지가 있다. 대표적으로는 ● Call by Value 함수에 인자를 넘길 때 값만 넘기며 함수 내 인자 값 변경 시, 호출자에게 영향을 주지 않음 ● Call by Reference 함수에 인자를 넘길 때 메모리 주소를 넘겨 함수 내 인자 값 변경 시, 호출자의 값도 변경됨 Python은 Call by Object Reference이다. 파이썬은 위 두가지 방식 모두 아닌 Call by Object Reference이다. 이는 파이썬은 모든 것을 '객체'로 표현하기 때문이다. 객체란? ● 실제로 존재하는 모든 것 ● 함수와 변수를 함께 묶는 방법의 하나 ● 파이썬 내에서 객체를 사용하는 것이 가능하며 이를 파이썬이 객체지향적 언어라고 ..

네이버 부스트캠프 AI tech 5기 합격 후기

음.. 같은 카테고리에 부스트캠프 탈락 이후 무엇을 해야할지 고민하는 글을 올렸었는데.. 2/16일 오후 6시에 메일을 받았다.... 확인은 검도 갔다와서 8시에 슬램덩크 보러 가려고 머리 말리면서 늘 그렇듯이 네이버 메일 확인하다가 합격 축하 메일을 보고 너무 놀라서 소리질렀다 네이버 부스트캠프 6기를 존버하면서 약 7~8월까지의 기간동안 펄어비스에서 QA 인턴을 모집하길래 딱 이걸 하면서 다음 기수 준비를 하면 될거같아서 신청했던 상태였고, 면접 메일을 기다리며 새로고침하다가 얼떨결에 원래 목표를 이뤘다. 그리고 오늘 알게된건데 인적성 테스트 안냈었단다... 뭐지 분명 제출했는데 오늘까지 해달라고 문자가 왔다.. 물론 안하게 됐지만 어쨌든 네이버 부스트캠프를 준비하면서 맨날 구글에 합격 후기를 쳐서 ..

삶/회고록 2023.02.17

[알고리즘] 투 포인터 알고리즘

사용하는 경우 1차원 배열이 있을 경우 리스트에 순차적으로 접근해야 할 때 두 지점을 설정해 해결하는 것. 예를 들어 N칸의 1차원 배열이 있을 때, 부분 배열 중 그 원소의 합이 M이 되는 경우의 수를 구하는 경우 모든 케이스를 조사하는 경우 시간 복잡도는 O(N^2)이 된다. 하지만 투 포인터를 사용하는 경우 end 포인터가 배열의 끝까지 도달하면 종료되기 때문에 복잡도는 O(N)이다. (시간 복잡도 빅-오 표기법에서는 상수항을 무시하기 때문에 O(2N)같은건 없다!) 과정 위의 케이스에서 M = 5라고 가정하고 배열의 구간 합이 5가 되는 지점을 찾는다고 하자 현재 start = 0 end = 0이며, 합 S = 두 포인터가 같기 때문에 0. end가 뒤로 움직일 때는 새로 포함한 원소를 S에 더하..

프로그래머스 Lv2 - 영어 끝말잇기

오랜만의 문제 풀이 포스팅. 저번에 프로그래머스 lv1을 모두 정복한 이후 lv1 문제들이 약 13개정도 추가되었었는데, 이것도 다 풀고.. 네이버 부스트캠프 1차를 준비하면서 백준,프로그래머스 하위 레벨 문제들을 양치기로 계속 풀다보니 포스팅보다는 빠르게 계속 푸느라 포스팅을 안했었다. 덕분에 1차를 붙었고, 2차 시험을 준비하면서 LV2 문제를 풀고있었다. 근데 이 문제는 포스팅 안해두면 나중에 내 코드를 절대 이해할 수가 없을 것 같아서 포스팅.. 일단 문제가 좀 길다. 카카오 기출같은 느낌.. def solution(n, words): times = [x % n for x in range(len(words))] wrong = "" ans = [] for i in range(len(words)): ..

input() 피하기, try-except는 if-else보다 나은가?

백준 실4 문제 10828, 스택을 풀다가 깨달은 점들 정리. N = int(input()) stack = [] for _ in range(N): order = input() try: if "push" in order: stack.append(int(order[5:])) elif order == "top": print(stack[-1]) elif order == "size": print(len(stack)) elif order == "pop": print(stack.pop()) elif order == "empty": if len(stack) == 0: print(1) else: print(0) except: print(-1) 1. input()을 솔직히 많은 사람들이 백준에 제출한 결과를 보면 쓰고 있..

회귀 알고리즘

K-최근접 이웃 회귀 K-Nearest Neighbor 로 KNN으로 불리는 알고리즘이다. 주로 Naive-Bayes 분류 알고리즘과 함께 주로 사용되고 소개되어 당연히 분류 알고리즘으로 알고 있었다. 하지만 이를 사용해 회귀 예측 모델링 또한 가능함. 분류 ▶ 나누어진 클래스 중 어느 클래스에 속할 것인지 '분류' 하는 것 K = 3의 경우, 3개의 데이터 중 Class B에 속하는 데이터가 더 많기 때문에 빨간색 별을 Class B로 분류함 K = 6의 경우, 6개의 데이터 중 Class A에 속하는 데이터가 더 많기 때문에 빨간색 별을 Class A로 분류함 회귀 ▶ 어떤 '숫자'를 예측하는 문제 K = 3의 경우 데이터들의 Class는 상관이 없고 빨간색 별의 '데이터 값' 을 알고 싶음. 주변 ..

Data Science/통계 2022.10.04