https://www.acmicpc.net/problem/17837구현 문제이다. 자료구조 선택이 중요한거 같다. 시간을 매우 짧게 줬고 공간을 매우 넓게 주었음으로 공간을 최대한 활용해서 시간을 줄이는 것이 키포인트 이다.나는 2차원 stack 공간 pieceOnBoard + 2차원 색을 저장할 체스판 board + 각각의 체스말의 위치 저장 리스트 pieces를 사용해서 풀었다.처음에는 빨간색 칸으로 이동할때 stack를 사용해서 현재 체스말 위치칸에서 pop하고 다음에 위치하게 될 체스말 위치칸으로 append하는 식으로해서 반대로 돌리고흰색으로 갔을땐 que를 사용해서 앞에서 부터 뺄까 생각했는데 이동하지 않는 말이 앞에 위치할 수 있어서 그리고 한칸에 많아봤자 3개의 stack만 지우면 되서..
너무나도 귀찮다 BFS,DFS문제풀때 맨날 콘솔에다가 값 적는거 너무나도 귀찮다.디버깅할때 예제 입력하는거 너무 짜증나지 않는가?그래서 만들었다.input.txt파일을 이용해서 빠르게 입력 하기일단 나같은 경우는 폴더 구조를 이런식으로 만들었다. 백준 폴더안에 코딩 테스트 문제들(py 파일들이 들어 있고) 예제 값을 입력하는 txt파일이 상위 폴더에 존재한다.만약 코딩테스트 문제파일과 input파일이 같은 폴더에 존재한다면 file_path = "../input.txt"에서 .하나 빼서file_path = "./input.txt"이렇게 적어주면 된다.# 파일 경로 지정file_path = "../input.txt" # 상위 폴더에 있는 경우 상황에 맞게 경로를 조절해주세요.# 파일 읽어오기 (인코딩을 ..
https://www.acmicpc.net/problem/5972 5972번: 택배 배송농부 현서는 농부 찬홍이에게 택배를 배달해줘야 합니다. 그리고 지금, 갈 준비를 하고 있습니다. 평화롭게 가려면 가는 길에 만나는 모든 소들에게 맛있는 여물을 줘야 합니다. 물론 현서는www.acmicpc.net데이크스트라 문제이다.bfs랑 비슷하게 풀면되는데 어떤 노드에 도착할때 방문하는데 사용한 비용이 더 낮다면 그노드부터는 한번더 탐색하는 방식이다.1번 노드에서 출발한다 1번노드 방문하는데는 0의 비용이든다.1번에서 2,4번으로 이동한다. 2노드로 가는데에는 1의 비용이 들고 4의 노드로 가는데에는 4의 비용이든다.2번,4번노드에서 이동한다. 2에서 1로 가려는데 1로 가는 최소 비용이 0이라 2보다 큼으로 못간..
https://www.acmicpc.net/problem/8980 8980번: 택배입력의 첫 줄은 마을 수 N과 트럭의 용량 C가 빈칸을 사이에 두고 주어진다. N은 2이상 2,000이하 정수이고, C는 1이상 10,000이하 정수이다. 다음 줄에, 보내는 박스 정보의 개수 M이 주어진다. M은 1이www.acmicpc.net그리디 문제이다.상자들을 보내는 마을로 heapq를 사용해서 정렬해 받는다.어떤 마을에 도착했을 때 받을 수 있는 택배 상자를 차에서 내린다.이제 보낼 상자를 택배에 올려야한다 일단 보내는 마을의 상자는 받아서 택배에 싣는다.만약 상자를 넣었는데 최대 용량 초과라면 가장 늦게 주는 마을의 택배량을 초과량만큼 줄인다.줄였는데도 초과용량이 남았다면 그다음 늦게 주는마을 줄이는 방식이다i..
https://www.acmicpc.net/problem/13164 13164번: 행복 유치원행복 유치원 원장인 태양이는 어느 날 N명의 원생들을 키 순서대로 일렬로 줄 세우고, 총 K개의 조로 나누려고 한다. 각 조에는 원생이 적어도 한 명 있어야 하며, 같은 조에 속한 원생들은 서로www.acmicpc.net그리디 문제이다.주어진 값 들의 사이 값들을 전부 분석해 저장한뒤 N-K만큼 빼내면 조를 K개 정했을때 필요한 금액이 된다.이유는1 | 3 | 5 | 6 | 10이렇게 있다고 했을 때 3개 조를 만들라면 2 : 2 : 1 로 조를 나눠야하고 2명씩 묵는 조가 2개가 나와야한다.그리고 이 2개의 조안에서 차이를 보면 되기 때문이다.또한 2개의 조를 만들라고 했을 땐 3 : 2 로 가는 것보다 4 ..
heapq 모듈은 힙(heap) 자료구조를 구현하는데 사용되는 파이썬 내장 모듈입니다. 힙은 부모 노드가 자식 노드보다 항상 작거나 큰 값을 가지는 이진 트리 구조를 가진 자료구조로서, 최소 힙(min heap) 또는 최대 힙(max heap)으로 사용될 수 있습니다. heapq 모듈은 주로 리스트를 사용하여 힙을 구현하며, 이 리스트는 항상 힙의 특성을 만족하도록 유지됩니다.아래는 heapq 모듈에서 제공하는 주요 함수들입니다: heapify(iterable): 주어진 iterable을 힙으로 변환합니다. 시간 복잡도는 O(n)입니다.import heapqdata = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]heapq.heapify(data)print(data) # [1, 1, 2,..