본문 바로가기

Algorithm475

[파이썬] 코드트리 : 코드트리 투어 (골드2) [파이썬] 코드트리 : 코드트리 투어 (골드2)https://www.codetree.ai/training-field/frequent-problems/problems/codetree-tour/description?page=1&pageSize=20풀이방향성 생각node x에서 다른 노드까지 최단거리 -> 다익스트라100: 그래프 연결 + 다익스트라여기서 500 이후에 어떤 명령이 들어오냐에 따라서 더 최적화가 가능하다.500 이후에 또 500이 연달아 나오는 경우, 앞에 500 연산들은 필요 없다.queue 형식으로 쌓아놨다가 명령어를 보고 체크할 수도 있을 듯실전에서는 안 쓸듯200/300: 상품 생성/삭제id가 고유한 상품이다 -> 삭제를 했을 경우 다시는 나오지 않음400 : 상품 판매상품을 판매한 경.. 2024. 5. 11.
[파이썬] 프로그래머스 : 숫자 타자 대회 (레벨3) [파이썬] 프로그래머스 : 숫자타자대회 (레벨3)https://school.programmers.co.kr/learn/courses/30/lessons/136797풀이방향성 생각백준의 DDR과 비슷한 문제.키패드가 12개에 왼손 오른손 처리하면 144개라 양이 좀 많다.다익스트라로 좌표 이동 시 걸리는 가중치맵을 구한다.DP 테이블을 순회하면서 최대값 갱신해주기.전체코드import heapq as hqfrom collections import defaultdict as dddef solution(numbers): # 키패드 arr = [['1','2','3'], ['4','5','6'], ['7','8','9'], ['*','0','#']].. 2024. 5. 9.
[파이썬] 프로그래머스 : 다단계 칫솔 판매 (레벨3) [파이썬] 프로그래머스 : 다단계 칫솔 판매 (레벨3)https://school.programmers.co.kr/learn/courses/30/lessons/77486풀이방향성 생각트리 형태DFS를 이용해서 각 판매마다 부모를 타고 올라가면서 수익 전달하기탈출 조건은 root거나 전달 수익이 없는 경우전체코드from collections import defaultdict as ddimport syssys.setrecursionlimit(10**6)def solution(enroll, referral, seller, amount): G = dd(str) # 부모 연결 for c,p in zip(enroll, referral): G[c] = p answer = dd(int) .. 2024. 5. 8.
[파이썬] 백준 1613 : 역사 (골드3) [파이썬] 백준 1613 : 역사 (골드3)https://www.acmicpc.net/problem/1613풀이방향성 생각특정 거리를 묻는다기 보다는 순서를 묻는 문제.위상 정렬이나 유니온파인드 + BFS로 생각한 풀이들은 중복 계산이 많이 발생해서 패스플로이드와샬로 테이블을 업데이트 한 후, 간선 정보를 이용해서 출력한다.전체코드import sysinput = lambda : sys.stdin.readline().rstrip()N,K = map(int,input().split())# 간선 정보 업데이트V = [[0]*(N+1) for _ in range(N+1)]for _ in range(K): a,b = map(int,input().split()) V[a][b] = 1# 플로이드와샬. st.. 2024. 5. 5.