분류 전체보기 25

ML/ 데이터 전처리 방법

훈련 세트와 체스트 세트르 사이킷런에서 제공하는 train_test_split() 함수로 세련되게 나누어 보겠다.from sklearn.model_selection import train_test_splittrain_input, test_input, train_target, test_target = train_test_split(fish_data, fish_target, stratify= fish_target, random_state=42)샘플링 편향이 일어나지 않게 하기 위해서 stratify 변수에 타겟 데이터를 넣어주면 된다. 이제 데이터를 훈련시키고, 길이 25에 무게 150인 고기를 예측(predict) 해본다. ( 도미가 나와야함 ! ) 어라? 근데 해보면 빙어가 나온다. 왜그럴까? kneig..

ML 18:27:20

ML/ 훈련 세트와 테스트 세트 분리

훈련세트는 훈련할 때, 테스트 세트는 훈련세트를 테스트할 때 사용해야 한다. 앞서 만든 fish_data 배열은 중첩배열이다.print(fish_data[4])를 출력하면 다섯번째 샘플인 [29.0, 430.0] 이 나오게 된다. 샘플링 편향을 방지하기 위해 훈련 데이터와 테스트 데이터에는 샘플들이 골고루 섞여 있어야 한다. 이를 위해 numpy 라이브러리가 도입된다.import numpy as npinput_arr = np.array(fish_data)target_arr = np.array(fish_target)넘파이는 배열의 차원을 구분하기 쉽도록 행과 열을 가지런히 출력해준다. shape 속성으로 넘파이의 샘플, 특성 수를 쉽게 알 수 있다.print(input_arr.shape)(49,2)가 출력..

ML 16:36:40

[백준]4779: 칸토어 집합(재귀)

재귀 연습 문제를 풀어보았다.... 재귀는 참 어렵군,,, 코드를 보고 해석하는건 쉽지만 혼자 생각해내기는 너무 어렵다. 이 문제도 꽤나 애를 먹었다.정답 코드package reculsive;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Q4779 { static StringBuilder answer; public static void Khan(int start, int length) { if (length == 1) { return; } int newLength = length / 3; ..

백준 2025.07.18

[백준]2178: 미로 탐색 (BFS 풀이)

정말 힘든 싸움이었다. 며칠동안 머리를 끙끙 앓았고 나에게 BFS에 대한 길을 뚫어준 문제. 최단 거리 문제에 대한 감각을 키워나가자! 정말 너무 뿌듯한 문제였다. 나는 이 문제를 접근할때 자꾸 DFS, 재귀로 접근을 했다. 더보기public static void isSafeR(int x, int y, int countR, boolean[][] visited) { if (x == N - 1 && y == M - 1) { if (countR = 0 && newY >= 0) { if ((newX 하지만 재귀로 풀어보니 막상 cnt를 어떻게 구해야할지, 최단 거리인데 한곳만 파고 들어가다가 끝이 나버리면은 그 길이 최단 거리가 아님에도 끝이나서 최단거리를 제대로 구하지..

백준 2025.07.17

[백준]1260: DFS와 BFS

1학기 종료 후,,, 오랜만에 백준을 풀기 시작했습니다... DFS와 BFS 정복해볼게요.DFS는 한놈만 팬다,,,, 재귀!BFS는 층별로 본다,,,, 큐로 구현, 최단거리 구하기!!!package graph;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.LinkedList;import java.util.Queue;import java.util.StringTokenizer;public class Q1260 { static int[][] edge_Arr; static boolean[] visited_Arr; static int N, M, V, co..

백준 2025.07.17

[백준]24060: 병합 정렬(재귀)

레전드 문제였습니다. 레전드. 레전드. 개레전드 에헿이~일주일이 뭐야 거진 한달이 걸렸네요. 완벽 풀이 들어가보겠습니다.자 우선, 병합정렬이란 ㅁㅜㅇㅓㅅㅇㅣㄹㄲㅏ??????????????????????????https://st-lab.tistory.com/233 자바 [JAVA] - 합병정렬 / 병합정렬 (Merge Sort)[정렬 알고리즘 모음] 더보기 1. 계수 정렬 (Counting Sort) 2. 선택 정렬 (Selection Sort) 3. 삽입 정렬 (Insertion Sort) 4. 거품 정렬 (Bubble Sort) 5. 셸 정렬 (Shell Sort) 6. 힙 정렬 (Heap Sort) 7. 합병(병합) 정렬 (Mergest-lab.tistory.com항상 깊은 감사를 표합니다. 너무나도..

백준 2025.03.06

[백준]24511: 큐스텍댁 최종 문제

엄청난 문제였다.문제 이해를 하는데 있어서 꽤 오랜 시간이 걸렸고, 내가 작성한 코드가 시간 초과가 나서 애를 많이 먹었다.결국, 나의 생각이 짧았던 것이었다.문제풀이 들어가보겠새우..우선 이 문제는 딱 보고 나서는 해석하기가 매우 힘들다.간단히 정리를 해보겠다.우선 첫째줄에 기본적으로 덱에 넣어햐 하는 수의 갯수N이 주어진다.두번째줄에는 0이냐, 1이냐에 따라서 큐를 만들거나 스택을 만든다.예를 문제에 주어진 것을 들자면, 1,2,3,4가 주어졌는데 0,1,1,0, 즉, 큐,스택,스택,큐 이다. 1은 큐에 저장2는 스택3도 스택4는 큐 이렇게 저장을 하고 M개 만큼 주어진 수를 한개한개씩 순차적으로 (큐,스택,스택,큐)에 넣겠다는 뜻이다.한개를 입력했을때 마지막에 뿅!하고 튀어나오는 수를 모아서 출력해..

백준 2025.01.20

[백준]2346: 풍선 터뜨리기 , 덱 개념

아주 머리가 지끈지끈 거리는 문제였다.덱에 대한 개념과 이 문제에 대한 풀이를 진행하도록 하겠새우 가봅새우.Deque 덱은 말그대로 카드 덱을 생각하면 된다.맨 위에서도 접근이 가능하고 맨 아랫장을 빼고 넣을수도있다.스택과 큐가 합쳐진 최종보스새우 느낌이다.이때문에 사용되는 매소드도 완즈히 고도로 발달된 느낌이다.https://soft.plusblog.co.kr/24 [Java(자바)] Deque(덱/데크) 자료구조카프카의 소스코드를 보던 중 내부에서 Deque 클래스를 사용한 부분을 보게 되었다. Deque(덱 혹은 데크)은 Double-Ended Queue의 줄임말로 큐의 양쪽으로 엘리먼트의 삽입과 삭제를 수행할 수 있는 자료soft.plusblog.co.kr특이한 메소드는offerFirst, pol..

백준 2025.01.20