Stay Hungry Stay Foolish
728x90

코테 6

[TIL] 백준 서비스 종료 소식을 접하며

안녕, 나의 알고리즘 성지 '백준(BOJ)'대학 시절, 코딩테스트를 처음 시작하며 가장 먼저 발을 들인 곳은 백준(Baekjoon Online Judge) 사이트였다. 개발자나 IT 직군이라면 모르는 사람이 없을 정도로(모르는 사람도 꽤나 있는 듯하다..), 코테 준비의 1순위이자 상징과도 같은 곳이다. 그런데 갑작스러운 서비스 종료 소식을 접하니 마음이 참 착잡하다.2년 동안의 치열했던 기록들지난 2년은 백준과 함께 지지고 볶았던 시간이었다. 매일 사이트에 접속해 문제를 풀며 느꼈던 감정들이 아직도 선명하다.성취감의 반복: 어려운 문제에 막혀 스트레스를 받다가도, '맞았습니다!!'를 보기 위해 수십 번 제출 버튼을 누르던 간절함이 있었다.성실함의 증명: 깃허브 잔디를 채우기 위해 아무리 풀기 싫은 날에..

🚀 Growth/TIL 2026.04.17

[Programmers/알고리즘 고득점 KIT] 프로세스

[Programmers] 프로세스Level 2 | #Queue #자료구조문제 바로가기 🔗1. 문제 요약 및 로직특정 프로세스가 실행될 차례일 때, 큐에 우선순위가 더 높은 프로세스가 있다면 현재 프로세스를 다시 큐의 끝으로 보내는 문제이다.Queue 활용: deque를 사용하여 프로세스를 관리하며, 인덱스와 우선순위를 튜플로 저장한다.우선순위 비교: 현재 꺼낸 프로세스보다 높은 우선순위가 하나라도 있는지 매번 확인한다.실행 순서: 더 높은 우선순위가 없다면 프로세스를 실행시키고 카운트를 올린다.2. 리팩토링 코드 (Python)from collections import dequedef solution(priorities, location): # 1. 인덱스와 우선순위를 큐에 담기 queue ..

[BOJ] 2178. 미로 탐색 (Python/BFS/Silver 1)

[Baekjoon] 2178. 미로 탐색Silver 1 | #BFS #최단경로문제 바로가기 🔗1. 문제 요약 및 풀이 방식(1, 1)에서 출발하여 (N, M) 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 문제이다.최단 거리 = BFS: 모든 간선의 가중치가 동일할 때 최단 경로를 보장하는 BFS를 사용한다.거리 업데이트: 다음 칸으로 이동할 때 현재 칸의 값 + 1을 저장하여 방문 여부와 거리를 동시에 관리한다.2. 전체 코드 (Python)import sysfrom collections import dequeinput = sys.stdin.readline# 데이터 입력 시 미리 int형 리스트로 변환 (최적화)N, M = map(int, input().split())graph = [list(..

[BOJ] 11724. 연결 요소의 개수 (Python/DFS/Silver 2)

[Baekjoon] 11724. 연결 요소의 개수Silver 2 | #DFS #BFS #그래프이론문제 바로가기 🔗1. 문제 요약 및 접근 방식방향 없는 그래프가 주어졌을 때, 연결 요소(Connected Component)의 개수를 구하는 문제이다. 즉, 그래프가 몇 개의 독립된 덩어리로 나뉘어 있는지 찾아야 한다.정점 중심 탐색: 간선이 없는 고립된 정점도 하나의 연결 요소로 취급해야 하므로, 모든 정점(1~N)을 순회하며 방문 체크를 해야 한다.인접 리스트 활용: 특정 정점과 연결된 노드들만 효율적으로 탐색하기 위해 인접 행렬보다 인접 리스트를 사용한다.무방향성: 양방향 연결을 위해 graph[u].append(v)와 graph[v].append(u)를 모두 수행한다.2. 전체 코드 (Python ..

[Programmers/알고리즘 고득점 KIT] 올바른 괄호

[Programmers] 올바른 괄호Level 2 | #스택/큐 #스택(Stack)문제 바로가기 🔗1. 문제 요약괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 ')' 문자로 닫혀야 한다는 뜻이다.문자열 s가 올바른 괄호이면 True를, 아니면 False를 반환한다.2. 접근 방식 및 포인트가장 최근에 열린 괄호가 가장 먼저 닫혀야 하므로 LIFO(Last-In-First-Out) 구조인 스택을 활용한다.✅ 열기: '('를 만나면 스택에 무조건 push한다.✅ 닫기: ')'를 만나면 스택에서 pop하여 짝을 맞춘다.✅ 예외: 닫으려는데 스택이 비어있거나, 모든 검사가 끝났는데 스택에 괄호가 남아있으면 잘못된 괄호이다.3. 구현 코드 (Python)def solution(s): sta..

[Programmers/알고리즘 고득점 KIT] 전화번호 목록

[Programmers] 전화번호 목록Level 2 | #해시문제 바로가기 🔗1. 문제 요약전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하는 문제이다.접두어가 존재하면 False를, 그렇지 않으면 True를 반환한다.2. 풀이 1: 정렬(Sorting) 활용def solution(phone_book): phone_book.sort() # 문자열 기준 정렬 for i in range(1, len(phone_book)): if phone_book[i].startswith(phone_book[i - 1]): return False return True📌 정렬 시 인접 원소만 비교하는 이유: 문자열 정렬은 사전순으로 이루어..

728x90