KwonGa's Story
본문 바로가기

전체 글132

#Coding - DFS, BFS https://www.acmicpc.net/problem/1260DFS와 BFS시간 제한메모리 제한제출정답맞힌 사람정답 비율2 초128 MB3563341457238590939.408%문제그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다.입력첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다.. 2026. 2. 24.
#Coding - Samsung 코딩 테스트 준비 삼성 코딩 테스트 합격 로드맵 (실제 준비 커리큘럼 공유)안녕하세요.오늘은 삼성 코딩 테스트 합격 로드맵을 공유하려고 합니다.저는 학부, 대학원, 현업, 그리고 부트캠프까지 다양한 환경에서 학계와 산업계를 경험하며 여러 아이디어를 실제로 구현해왔습니다.그 과정에서 종종 이런 질문을 받았습니다.“현업에서는 GPT나 AI 도구를 활용해 개발하는데, 왜 여전히 코딩 테스트를 볼까?”저 역시 같은 고민을 했습니다.하지만 코딩 테스트를 준비하면서 생각이 달라졌습니다.자료구조와 알고리즘을 하나씩 분석하고 구현해보는 과정은 단순히 문제를 푸는 훈련이 아니라,컴퓨터가 어떻게 동작하는지를 몸으로 체득하는 과정이라는 걸 느꼈습니다.저는 Computer Vision 분야에서 경험을 쌓아왔지만, 현업에서 NLP 프로젝트를 진.. 2026. 2. 24.
#Coding - 양과 늑대 🏆 [Algorithm Analysis] 양과 늑대: '후보지 주머니'를 이용한 무적의 탐색법1. 등장 배경 (Why?)보통의 트리 문제는 "한 번 내려가면 끝"이지만, 이 문제는 **"양을 보충해서 다시 돌아오기"**가 핵심입니다. 연구자님이 파악하신 것처럼, 현재 위치뿐만 아니라 **'내가 갈 수 있는 모든 선택지'**를 데이터로 들고 다녀야만 이 비선형적인 문제를 풀 수 있습니다.2. 원리 (How?)비유: 마법의 포탈 지도12살 아이에게 설명해 볼까요?"연구자님, 이건 주인공이 **'지금 당장 열 수 있는 모든 문'**이 적힌 지도를 들고 다니는 것과 같아.문 하나를 골라서 들어가는 순간, 그 문은 지도에서 지워져(visited - {next_node}).대신 그 방 안에 새로 연결된 문들이 있.. 2026. 2. 23.
#Coding - [Python] set.add() vs set.update() 🏗️ [Python] set.add() vs set.update(): 한 개냐, 여러 개냐!1. 등장 배경 (Why?)집합(set)에 새로운 원소를 넣고 싶을 때, 우리는 상황에 따라 두 가지 요구가 생깁니다."데이터 딱 하나만 집어넣고 싶어.""리스트나 다른 집합에 있는 데이터들을 한꺼번에 쏟아붓고 싶어." 이 두 목적을 구분하기 위해 add와 update가 탄생했습니다.2. 원리 (How?)비유: 사탕 봉지에 사탕 넣기12살 아이에게 설명해 볼까요?add (사탕 한 알): 손에 쥐고 있는 사탕 한 알을 봉지에 쏙 넣는 거야. 사탕이 아무리 커도 결국 '한 덩어리'로 취급하지.update (사탕 상자): 사탕이 여러 개 들어있는 상자를 가져와서 봉지에 탈탈 털어 넣는 거야. 상자 안에 든 사탕들이 낱.. 2026. 2. 21.
#Coding - python combinations, Counter 🥗 [Python] itertools.combinations & collections.Counter1. 등장 배경 (Why?)수많은 손님의 주문 내역(orders) 속에서 "어떤 메뉴 조합이 가장 인기가 많았을까?"를 찾아내는 것은 데이터 분석의 기본입니다."A와 B를 같이 주문한 사람이 몇 명이지?""그중에서 가장 빈도가 높은 조합은 뭐지?"이런 질문에 답하기 위해, 가능한 모든 경우의 수를 만들고(combinations), 각각의 출현 횟수를 기록하는(Counter) 과정이 필요합니다.2. 원리 (How?)비유: 최고의 샌드위치 꿀조합 찾기12살 아이에게 설명해 볼까요?"연구자님, 우리 샌드위치 가게에 재료가 5개 있어.combinations (조합): 5개 재료 중에 2개씩 골라 잡는 **'모든 .. 2026. 2. 11.
#Coding - 리스트 컴프리헨션 📑 [Python] 리스트 컴프리헨션1. 등장 배경 (Why?)우리가 수집하는 데이터는 대개 복합적입니다. (이름, 점수), (ID, 좌표)처럼 짝을 이뤄 존재하죠. 하지만 분석의 마지막 단계나 결과 제출 시에는 "점수만" 혹은 "ID만" 필요한 경우가 많습니다. 이때 여러 줄의 반복문을 쓰지 않고, 단 한 줄로 깔끔하게 필요한 데이터만 정제하기 위해 이 문법을 사용합니다.2. 원리 (How?)비유: 붕어빵에서 '팥'만 골라내기12살 아이에게 설명해 볼까요?"연구자님, 여기 갓 구운 붕어빵 리스트(sorted_bread[:2])가 딱 2개 있어. 붕어빵 안에는 **'빵(idx)'**이랑 **'팥(_)'**이 들어있지.자르기: 일단 수많은 붕어빵 중 가장 맛있는 2개만 딱 골라내.추출: 이제 붕어빵을 반.. 2026. 2. 10.
#Coding - extend() 함수 🔗 [Python] 리스트를 하나로 합치는 extend()1. 등장 배경 (Why?)데이터를 수집하다 보면 리스트 안에 또 다른 리스트가 생기는 경우가 많습니다."장르별로 뽑은 곡 번호 리스트 [4, 1]과 [3, 0]을 합쳐서 [4, 1, 3, 0]을 만들고 싶어!"이때 append를 쓰면 [[4, 1], [3, 0]]처럼 리스트 자체가 들어가 버립니다. 우리는 '박스'가 아니라 그 안의 **'알맹이'**들만 필요할 때 extend를 사용합니다.2. 원리 (How?)비유: 사탕 봉지 합치기12살 아이에게 설명해 볼까요?"연구자님, 여기 answer라는 큰 사탕 주머니가 있어.append (추가하기): 사탕 봉지([4, 1])를 봉지째로 주머니에 쑥 집어넣는 거야. 나중에 꺼내려면 봉지를 한 번 더 까.. 2026. 2. 10.
#Coding - lambda를 이용한 다중 조건 정렬 📑 [Python] 정렬의 고수: lambda를 이용한 다중 조건 정렬 (-x[1], x[0])1. 등장 배경 (Why?)세상의 모든 기준은 하나가 아닙니다."성적이 높은 순으로 뽑되, 점수가 같으면 나이가 어린 순으로 해줘.""가장 많이 팔린 상품 순으로 보여주되, 판매량이 같으면 최신 등록일 순으로 보여줘."이처럼 1순위 기준이 동점일 때 2순위 기준을 적용해야 하는 상황에서 파이썬의 sorted()와 lambda는 환상적인 호흡을 보여줍니다.2. 원리 (How?)비유: 운동회 달리기 등수 매기기12살 아이에게 설명해 볼까요?"연구자님, 운동회에서 등수를 매기는 로봇이 있다고 해보자.1순위 (-점수): 로봇은 원래 작은 숫자부터 세는 걸 좋아해. 그래서 '큰 점수'가 먼저 오게 하려고 점수 앞에 *.. 2026. 2. 10.
#Coding - sorted() key 정렬, items 정렬 📑 [Python] 데이터 정렬의 마법사, sorted() 완벽 가이드: Key 정렬 vs Items 정렬1. 등장 배경 (Why?)데이터 분석이나 딥러닝 연구를 하다 보면, 딕셔너리에 담긴 데이터를 특정 기준에 따라 정렬해야 할 일이 정말 많습니다. 특히 **"장르별 재생 횟수"**나 **"모델별 에러율"**처럼 '값(Value)'을 기준으로 '이름(Key)'을 줄 세워야 할 때, sorted() 함수는 가장 강력한 도구가 됩니다.2. 원리 (How?)비유: 마법의 정렬 컨베이어 벨트12살 아이에게 설명해 볼까요?"연구자님, 여기 **'정렬 컨베이어 벨트'**가 있어.재료 투입: 우리가 벨트 위에 '이름표(Key)'만 올릴지, '이름과 점수가 적힌 카드(Items)'를 올릴지 정해.검사관(Key=):.. 2026. 2. 10.