Algorithm 109

[프로그래머스] 방금그곡

1. 문제https://school.programmers.co.kr/learn/courses/30/lessons/17683?language=python32. 알고리즘더보기1. 시간계산 함수 구현 후 함수 시간 만큼 곡 늘리기2. #을 사용하는 경우 소문자로 치환하기3. 재생시간이 긴순, 음악 제목의 알파벳 순으로 정렬4. 입력한 음악중에 맞는 값 출력 3. 코드def time_cal(enter, out): in_hour, in_minute = map(int, enter.split(':')) out_hour, out_minute = map(int, out.split(':')) min_gap = out_minute - in_minute hour_gap = out_hour - in_hou..

Algorithm 2026.01.19

[프로그래머스] 주차 요금 계산

1. 문제https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2. 알고리즘더보기1. 시뮬레이션 문제로 자료구조를 잘 이용하여 사용2. 출차 입차 기록 records를 string을 space 기준 파싱 3. 차량번호 기준 오름차순으로 값을 반환해야 하므로 정렬 (기본적으로 records가 출입차 기록이 오름차순으로 됨)4. 차량 번호당 얼마나 있었는지 총합 계산이 필요하여 dict에 저장 5. dict에 출입차 기록 조회 하는 과정에 출차 기록이 없는경우 23:59 추가6. 시간 계산하여 fees 조회 ..

Algorithm 2026.01.11

[프로그래머스] 미로 탈출

1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/159993# 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2. 알고리즘더보기1. 해당 글은 최단 거리를 찾아야 하므로 bfs가 적합2. 지도의 조건이 중요한데, X를 제외한 모든 칸은 다 여러번 지나다닐 수 있다3. 먼저 시작지점, 출구, 레버의 위치를 저장한다4. 시작 - 레버위치의 최단거리를 구한다 5. 모든 통로는 X를 제외하고 지나 다닐 수 있으므로, 레버까지의 최소이동 거리를 제외하고 지나온 경로를 초기화 시킨다 6. 레버의 위치 - 출구까지의 최단거리를 구한다7. 출구의 위치에 저장된..

Algorithm 2026.01.10

[프로그래머스] 단어 변환

1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/43163# 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2. 알고리즘 더보기1. 바꿔보고 돌리고 하는 백트래킹 사용2. 먼저 한글자만 다른지 확인하는 함수 checker 구현 -> 문자열 전체길이 -1 이 같은 글자 수 인지 확인3. dfs로 순회해주는데 생각할 조건은 최소값을 구해야하므로, 종료 조건의 경우 현재 문자열이 target과 같아질때 min 으로 업데이트 해준다4. words를 돌면서 checker로 한글자만 다르고 방문한 적 없는지 확인하여 순회한다5. words 에 target..

Algorithm 2026.01.07

[프로그래머스] 소수 찾기

1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2. 알고리즘 더보기1. string 으로 주어진 문자열을 통해 가능한 모든 숫자 조합을 만들어야한다2. 이때 숫자의 위치에 따라 값이 변하기 때문에 순열을 사용한다 3. 1개만 사용하는 순열 ~ 모든 숫자를 다 사용하는 순열을 조합한다4. integer로 바꾼뒤 소수인지 판별 3. 코드 from itertools import permutations def is_prime(n): # 소수 판별 if n

Algorithm 2026.01.07

[프로그래머스] 타겟 넘버

1. 문제https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2. 알고리즘 더보기1. 덧셈 뺄셈 모든 연산을 확인해본다2. dfs로 전부 해보는게 솔루션 3. 종료 조건은 현재값이 target 값이며 모든 numbers를 idx를 확인하고 마지막 len(numbers)에 왔을때 최종 결과 값이 나오므로 종료 (여기서 실수 마지막 배열값에 도달하기 전에 중지 하면 값이 안나옴) 3. 코드 answer = 0def solution(numbers, target): def dfs(idx, cur)..

Algorithm 2026.01.06

[프로그래머스] 베스트앨범

1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42579?language=python3# 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해당 문제를 풀때 주의해야할 점은 다음과 같다1. 장르별 곡을 분류 해야함 -> dict 사용 (key: genres / value: plays)2. 많이 재생된 순으로 정렬 -> 내림차순이므로 reverse=True3. 장르내 플레이수가 같은 경우 더 낮은 고유번호가 먼저 오도록 설정 -> 이미 식별된 경우 마킹이 필요함 2. 알고리즘 1) 장르별 곡 플레이 수를 dict에 저장한다2) dict 에 저장할때..

Algorithm 2026.01.03

[백준 2146] 다리 만들기

문제 https://www.acmicpc.net/problem/2146 알고리즘1. bfs그래프 탐색을 통해서 1로 되어 있는 땅을 2, 3, 4 .. 으로 각 구역을 숫자로 구분한다2. 다음 bfs 탐색을 통해서 시작 구역의 위치를 queue에 담아둔다 3. 탐색 과정에서 자신의 구역과 다른 구역을 만났을 때 최단거리를 반환한다 코드 import sysfrom collections import dequedef Input_Data(): input = sys.stdin.readline N = int(input()) graph = [] for _ in range(N+1): graph.append(list(map(int, input().split()))) return N..

Algorithm 2024.09.17

[백준 1922] 네트워크 연결

문제https://www.acmicpc.net/problem/1922알고리즘1. 연결관계를 dict에 저장한다2. 다익스트라 알고리즘으로 최단 경로를 탐색한다 3. 모든 네트워크가 연결되어야 하므로 1번부터 끝 번인 N번까지 탐색 하여 최소 값을 업데이트 한다 코드import sys, math, heapqdef Input_Data(): input = sys.stdin.readline N = int(input()) M = int(input()) adj = {i : [] for i in range(1,N+1)} for _ in range(M): a,b,c = map(int, input().split()) adj[a].append([b,c]) a..

Algorithm 2024.09.17