본문 바로가기

전체 글

데이터 분석과 결측치 제거(feat. Kaggle) 1학기 시작 후 7주차의 절반쯤 지난 지금, 기계학습 보다는 데이터 분석부터 공부 중이다. 각종 파이썬 라이브러리로 데이터를 분석, 시각화, 이상치 및 결측치 제거 등을 공부했다. 중간고사가 지나면 scikit-learn이라는 라이브러리를 통해 기계학습을 본격적으로 배우기 시작할 것 같다. 오늘은 중간고사 대비 겸으로 결측치 제거를 캐글의 데이터셋을 분석하며 정리하려고 한다. import numpy as np import seaborn as sns import matplotlib.pyplot as plt import pandas as pd 기본적으로 위의 라이브러리들을 불러온 상태에서 시작한다. 데이터 불러오기 https://www.kaggle.com/datasets/rush4ratio/video-gam.. 더보기
[백준 1655] 가운데를 말해요, 우선순위 큐: Priority Queue, Heap. feat.JAVA 문제소개 [문제] 정수를 입력할 때마다 그때까지 입력된 정수 중 중앙값을 출력하는 문제다. 우선순위 큐(Priority Queue)를 활용하여 풀어야 한다. 자료구조에 대한 이해가 덜 된 상태에서 문제를 푸느라 뻘짓을 많이 했지만 그만큼 배운게 많다. 자료구조 간단 정리 자료구조 반환데이터 스택(Stack) 제일 나중에 넣은 데이터(LIFO) 큐(Queue) 제일 처음 넣은 데이터(FIFO) 우선순위 큐 (Priority Queue) 가장 우선순위가 높은 데이터 스택과 큐는 입력과 출력을 다루는 것이 간단해보이지만 우선순위 큐는 그렇지 않다. 우선순위와 관계없이 값을 입력하지만 우선순위가 가장 높은 값을 출력해야 한다. 따라서 값을 입력할 때 기존의 값들과 우선순위를 비교하는 연산이 필요하다. 이때 힙을.. 더보기
개방 시스템 상호 연결(OSI, Open System Interconnection) 개방 시스템(Open System) 기반 구조에 관계없이 서로 다른 두 시스템 간 통신을 가능하게 하는 프로토콜의 집합 개방 시스템 상호 연결(OSI) 모델 1983년 ISO(International Standardization Organization) 표준화 기구에서 개발 시작. 컴퓨터 통신 분야에서 상호운용성을 확보하기 위한 다양한 표준에 대한 국제적인 표준 정의를 위한 기본 골격. 융통성을 부여. 특정 계층만 업그레이드하여 교체할 수 있음. 각 계층별로 여러가지의 프로토콜이 존재함. 요약 Layer 데이터 단위 장비 특징 예 [L7] Application data 사용자에게 서비스 제공. 파일 전송, 접근, 관리. 문서, 메시지 교환 전자메일(SMTP), 가상단말, 파일 송수신(FTP), 웹(HTT.. 더보기
[백준 12865] 평범한 배낭, 동적 계획법:Dynamic Programming 문제 소개 [문제] 동적 계획법(Dynamic Programming) 문제다. 무게와 가치가 있는 물건을 한도가 있는 배낭(knapsack)에 넣는 것은 대표적인 동적 계획법 알고리즘 문제이다. 사실 문제 풀이법을 찾아보기 전까지는 동적 계획법을 몰라서 아래처럼 무게 별 가치로 정렬 후 더하는 방식으로 짰다가 바로 틀렸다. (ㅜㅜ) 그리디 알고리즘은 이 경우에 알맞지 않다. 더보기 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; class Stuff { int weight.. 더보기
다형성: Polymorphism 다형성 다형성이라는 말은 이번에 처음 들어봤지만 생각보다 이해하기 쉬웠다. 짧게 말하면 어떤 객체를 다른 객체로 선언할 수 있다는 것이다. Student bonbon = new Student(); Person bonbon = new Student(); 위처럼 객체를 Person 타입으로 선언했지만 Student로 초기화할 수 있다. 대박~ 그런데 다 되는 것은 아니다. ㄱ- 위키백과의 다형성 정의는 이렇다. 프로그램 언어의 다형성(多形性, polymorphism; 폴리모피즘)은 그 프로그래밍 언어의 자료형 체계의 성질을 나타내는 것으로, 프로그램 언어의 각 요소들(상수, 변수, 식, 오브젝트, 함수, 메소드 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질을 가리킨다. 반댓말은 단형성(mono.. 더보기
추상화 클래스 vs 인터페이스 개요 최근에 OOP공부 겸 자바공부를 시작했다. OOP를 아예 모르는 상태에서 python같은 언어로 OOP를 공부해도 객체지향스러운 코드 작성을 못할 것 같아서다. 인프런에서 강의를 듣다가, 지금까지는 너무 기초적인 내용이라 모르는게 없었는데 이제 좀 객체지향과 관련된 내용이 나와 메모 겸 정리 한다. 추상화 클래스 추상화 클래스는 추상화 메서드를 포함하는 클래스이다. 추상화 메서드 외에 일반 메서드, 변수 등을 포함해도 된다. 추상화 클래스 선언하기 abstract class Human{ } 그냥 일반 클래스 앞에 abstract를 붙여주면 된다. 추상화 클래스는 바로 객체로 선언할 수 없다. 구체적인 것이 없고 추상적이기 때문이다. 추상화 메서드를 알고나면 이해하기 쉽다. 추상화 메서드 abstra.. 더보기
[OpenCV] 채널 별 배열 구조 + 이미지 투명화 계기 무작정 OpenCV 박치기를 해보니 openCV의 이미지파일이 numpy 배열이라는 것을 알게 되었다. 하지만 알아봤자 대체 rgba가 어떤 식으로 펼쳐져 있는지, 파이썬에서 어떻게 배열을 다뤄야하는지 몰라 난항을 겪고 있다. 일단 뭘 하는지 알아내기 위해 각 채널 별 배열부터 알아보자. OpenCV의 채널 openCV에서 이미지 파일을 읽을 때 cv2.imread() 함수를 사용한다. 첫 번째 인자는 파일의 주소이고 두 번째 인자는 flag다. flag에 따라 이미지를 불러 올 때 채널 값이 바뀐다. 채널은 불러온 이미지에.shape를 하여 얻은 배열의 3번 째 값이다. cv2.IMREAD_COLOR 혹은 1 : 이미지를 Color로 읽음. 투명 무시. Default. cv2.IMREAD_GRAY.. 더보기
[2021.12 ~ 2022.02] 방학동안 뭘했나 🍭외주 지인의 소개로 단돈 10만원에 어린이 수학, 영어 학원의 로고 외주를 하였다. 크몽에서는 단순한 로고 가격이 적어도 5만원이 넘는다. 나는 캐릭터 작업까지 했으니 좀 싸게 받은 것 편이다. 하지만 그건 실무자들이나 그렇지 과거 전공이었다 쳐도 지금은 비전공 대학생에 포트폴리오도 없는 것을 감안하면 적당한 가격이라고 생각한다. 그래도 피드백이 많이 없어 시간상으로 따지면 최저보다는 많이 받았다. 커미션을 한지 오래되어 클라이언트에게서 랜덤한 시각에 피드백이 오는 것이 생각보다 피곤하다는 것을 잊고 있었다. 그래서 적어도 졸업할 때까지는 (휴학을 하지 않는 이상)돈받는 외주나 커미션을 하지 말아야겠다 싶었다. 📖독서 신입생 때 대학기간 중 책 100권 읽기라는 목표를 세웠었다. 아주 어릴 때부터 엄마.. 더보기