python 43

머신러닝 & 딥러닝 기초 24편 | K-Means 알고리즘 완전 정리 (Clustering / 비지도학습)

목차1. K-Means 알고리즘2. K-Means 알고리즘 동작 과정3. K-Means 알고리즘 특징4. K-Means 알고리즘 예제 1. K-Means 알고리즘K-Means는 비지도 학습(Unsupervised Learning)에서 가장 대표적인 군집화(Clustering) 알고리즘이다.군집화란 정답(Label)이 없는 데이터들을 서로 비슷한 특성을 기준으로 그룹으로 묶는 방법을 의미한다. K-Means는 데이터 간의 유사성을 기준으로 데이터를 여러 개의 그룹(=클러스터)으로 나눈다.K-Means 알고리즘의 목표는 다음과 같다.데이터를 K개의 그룹으로 나누고, 각 데이터가 가장 가까운 그룹에 속하도록 만드는 것 여기서 K는 우리가 만들고 싶은 클러스터의 개수를 의미한다. 예를 들어, 다음과 같은 경우에..

Baekjoon(백준) - 2903 (중앙 이동 알고리즘) | Python

👉 Baekjoon(백준) - 2903 (중앙 이동 알고리즘) N = int(input())print((2**N + 1) ** 2) 이 문제의 핵심은 점의 얼마나 추가되는지 계산하는 것이 아니라, 정사각형 격자의 구조를 파악하는 것이다. 예시)과정이 진행되면서 점의 개수는 다음과 같이 증가한다.단계점의 개수초기 (N=0)41번 수행92번 수행25 핵심 아이디어이 문제는 전체 점의 개수를 직접 세려고 하면 복잡해진다.대신 정사각형 한 변에 존재하는 점의 개수를 먼저 관찰하면 규칙을 쉽게 찾을 수 있다. 초기 상태에서는 한 변에 점이 2개 존재한다.과정을 한 번 수행하면 각 점 사이에 새로운 점이 추가되므로2 → 3 이 된다. 다음 단계에서는 다시 각 점 사이에 점이 추가되어3 → 5가 된다. 이 과정을..

backjeon/Bronze 2026.03.17

Baekjoon(백준) - 5086 (배수와 약수) | Python

while True: a, b = map(int, input().split()) if a == 0 and b == 0: break if b % a == 0: print("factor") elif a % b == 0: print("multiple") else: print("neither") 이 코드는 두 수가 주어졌을 때 약수, 배수 관계를 판단하는 프로그램이다.입력은 여러 줄로 주어지며 0 0 이 입력되면 프로그램이 종료된다. 1. 무한 반복문 while True: 입력이 여러 테스트 케이스로 계속 들어오기 때문에, 종료 조건이 나올 때까지 반복문을 계속 실행한다. 2. 여러 정수 입력 받기a, b = map(int, input..

backjeon/Bronze 2026.03.16

Baekjoon(백준) - 2563 (색종이) | Python

n = int(input())paper = [[0] * 100 for _ in range(100)]for _ in range(n): x, y = map(int, input().split()) for i in range(x, x+10): for j in range(y, y+10): paper[i][j] = 1area = 0for i in range(100): for j in range(100): area += paper[i][j]print(area) 이 코드는 100x 100 크기의 도화지 위에 여러 장의 10x10 색종이를 붙였을 대 검은 영역의 넓이를 구하는 프로그램이다 1. 색종이 개수 입력N = int(input()).붙일 색종이의 개수를..

backjeon/Silver 2026.03.15

Baekjoon(백준) - 10798 (세로읽기) | Python

words = [input().strip() for _ in range(5)]result = ""for j in range(15): for i in range(5): if j 이 코드는 가로로 입력된 5개의 문자열을 세로 방향으로 읽어, 하나의 문자열로 출력하는 프로그램이다. 1. 리스트 컴프리헨션words = [input().strip() for _ in range(5)] 리스트 컴프리헨션을 이용하여 5개의 문자열을 리스트로 저장한다. input() : 문자열 입력strip() : 문자열 앞뒤 공백 제거for _ in range(5) : 5번 반복_ : 반복 변수이지만 사용하지 않을 때 관례적으로 사용하는 표기법예시 입력AABCDDafzz09121a8EWg6P5h3kx 예시 출력 결..

backjeon/Bronze 2026.03.14

Baekjoon(백준) - 2566 (최댓값) | Python

max_num = -1max_row = 0max_col = 0for i in range(9): row = list(map(int, input().split())) for j in range(9): if row[j] > max_num: max_num = row[j] max_row = i+1 max_col = j+1print(max_num)print(max_row, max_col) 1. 최댓값 및 변수 초기max_num = -1 문제에서 입력되는 수는 0이상 100이하의 자연수 이므로, 초기값을 -1로 설정한다.어떤 값이 입력되더라도 첫 비교에서 반드시 갱신된다. 또한, 최댓값이 위치한 좌표를 저장하기 위해 다음 변수도 함께 ..

backjeon/Bronze 2026.03.13

Baekjoon(백준) - 2738 (행열 덧셈) | Python

N, M = map(int, input().split())arr1 = [list(map(int, input().split())) for _ in range(N)]arr2 = [list(map(int, input().split())) for _ in range(N)]for a, b in zip(arr1, arr2): print(*(x+y for x, y in zip(a,b))) 1. 여러 정수 입력 받기N, M = map(int, input().split()) input() : 한 줄 입력 받기split() : 공백을 기준으로 문자열 분리map(int, ...) : 문자열을 정수형으로 변환 2. 리스트 컴프리헨션arr1 = [list(map(int, input().split())) for _ in ..

backjeon/Bronze 2026.03.12

머신러닝 & 딥러닝 기초 5편 | 데이터 저장 방법 (CSV, Excel, JSON, SQLite)

목차1. 데이터 저장의 필요성2. CSV 파일3. Excel 파일4. JSON 파일5. 데이터 형식 비교6. SQLite 데이터베이스7. Python과 SQLite 연동8. SQLite 데이터 처리 (CRUD) 1. 데이터 저장의 필요성머신러닝과 딥러닝에서는 데이터를 저장하고 관리하는 과정이 매우 중요하다. 데이터는 다음과 같은 형태로 저장될 수 있다.CSV, Excel, JSON, 데이터베이스 등이렇게 저장된 데이터는 데이터 분석, 전처리, 머신러닝 모델 학습 과정에서 활용된다.2 CSV 파일CSV(Comma-Separated Values)는 데이터를 쉼표(,)로 구분하여 저장하는 텍스트 기반 파일 형식이다. 특징매우 가벼운 파일 형식대부분의 데이터 분석 도구와 호환대량 데이터 저장에 적합Excel은..

Baekjoon(백준) - 3003 (킹, 퀸, 룩, 비숍, 나이트, 폰) | Python

import syschess = [1,1,2,2,2,8]chess_num = list(map(int, sys.stdin.readline().split()))result = [a-b for a,b in zip(chess, chess_num)]print(*result) 1. 입력 처리import syschess_num = list(map(int, sys.stdin.readline().split())) sys.stdin.readline()은 표준 입력을 빠르게 읽어오는 함수이다.온라인 저지 환경(예: 백준)에서는 입력의 양이 많을 수 있기 때문에 input() 대신 자주 사용된다. split()을 이용해 공백을 기준으로 문자열을 나누고, map(int, ...)을 사용하여 각 값을 정수형으로 변환한다.예를 ..

backjeon/Bronze 2026.03.11

파이썬 기초 13편 | 판다스(Pandas) 기본 문법

목차1. 판다스(Pandas)란2. 데이터 분석 과정에서의 판다스 역할3. Series와 DataFrame4. DataFrame 생성5. 데이터 확인 5-1 head() 5-2 tail() 5-3 shape 5-4 info()6. 데이터 선택과 필터링 6-1 특정 열 선택 6-2 조건 필터링7. 데이터 조작 7-1 열 추가 7-2 행 추가 7-3 데이터 수정8. 결측치 처리 8-1 결측치 확인 8-2 결측치 채우기 8-3 결측치 행 삭제9. 데이터 정렬10. 그룹화(groupby) 10-1 합계 10-2 평균11. 파일 입출력 11-1 CSV 저장 11-2 CSV 읽기12. 판다스가 중요한 이유 1. 판다스(Pandas)란판다스(Pandas)는 데이터 분석 및 데이터 조작에..

Python 2026.03.10