Python/백준] 17837 새로운 게임 2
Coding Test/Python2024. 6. 12. 23:54Python/백준] 17837 새로운 게임 2

https://www.acmicpc.net/problem/17837구현 문제이다. 자료구조 선택이 중요한거 같다. 시간을 매우 짧게 줬고 공간을 매우 넓게 주었음으로 공간을 최대한 활용해서 시간을 줄이는 것이 키포인트 이다.나는 2차원 stack 공간 pieceOnBoard  + 2차원 색을 저장할 체스판  board + 각각의 체스말의 위치 저장 리스트 pieces를 사용해서 풀었다.처음에는 빨간색 칸으로 이동할때 stack를 사용해서 현재 체스말 위치칸에서 pop하고 다음에 위치하게 될 체스말 위치칸으로 append하는 식으로해서 반대로 돌리고흰색으로 갔을땐 que를 사용해서 앞에서 부터 뺄까 생각했는데 이동하지 않는 말이 앞에 위치할 수 있어서 그리고 한칸에 많아봤자 3개의 stack만 지우면 되서..

Python/백준] 5972 택배 배송
Coding Test/Python2024. 1. 2. 22:20Python/백준] 5972 택배 배송

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보다 큼으로 못간..

Python/백준] 8980 택배
Coding Test/Python2023. 12. 27. 19:14Python/백준] 8980 택배

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..

[Python/백준] 13164 행복 유치원
Coding Test/Python2023. 12. 25. 19:05[Python/백준] 13164 행복 유치원

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 ..

[Python/백준] 6549_히스토그램에서 가장 큰 직사각형
Coding Test/Python2023. 12. 15. 10:19[Python/백준] 6549_히스토그램에서 가장 큰 직사각형

https://www.acmicpc.net/problem/6549 6549번: 히스토그램에서 가장 큰 직사각형입력은 테스트 케이스 여러 개로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, 직사각형의 수 n이 가장 처음으로 주어진다. (1 ≤ n ≤ 100,000) 그 다음 n개의 정수 h1, ..., hn (0 ≤ hi ≤www.acmicpc.netstack 문제이다. 지금까지 추가된 상자가 언제부터 이어져왓는지 기록해야한다.만약 추가되는 상자가 이전 상자보다 작다면 현재 상자와 이전 큰 상자의 차이는 필요가 없어짐으로 이전 상자가 얼마나 큰지 계산해서 가장 큰 상자인지 max로 비교해 검증해준다. 현재 상자는 큰 상자와 같이 이어짐으로 현재상자가 큰 상자가 추가됐을때 추가된것처럼 기록한다..

[Python/백준] 3015 오아시스 재결합
Coding Test/Python2023. 12. 14. 14:12[Python/백준] 3015 오아시스 재결합

https://www.acmicpc.net/problem/3015 3015번: 오아시스 재결합첫째 줄에 줄에서 기다리고 있는 사람의 수 N이 주어진다. (1 ≤ N ≤ 500,000) 둘째 줄부터 N개의 줄에는 각 사람의 키가 나노미터 단위로 주어진다. 모든 사람의 키는 231 나노미터 보다 작다. 사람www.acmicpc.netstack 문제이다. 사람들은 왼쪽에 보는 사람만봐서 중복을 없에고 왼쪽 사람들을 stack으로 관리한다.시간복잡도를 줄이는 것이 중요한테 왼쪽 사람들의 키가 겹칠경우 배열 한칸을 차지하지 않고 같은 키의 사람의 수가 몇인지 기록해야 한다.[9,3]이렇게 stack에 저장된다(stack은 2차원 배열) index 0은 사람의 키 index 1은 몇명이 이키인지 나타내는 것이다.s..

728x90
반응형
image