본문 바로가기
728x90
반응형

Python169

2022.02.25 [백준] (python 파이썬) 마인크래프트 https://www.acmicpc.net/problem/18111 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net 풀이 이 문제를 어떻게 풀어야 할까 고민했지만 전체를 확인하는 방법 말고는 생각이 나지 않았다. 그래서 모든 경우의 수를 체크했고 python3로 제출하니 시간초과,,,,, 여기서 시간복잡도를 줄일 방법이 생각이 나지않아 pypy3로 제출하니 통과했다...! 우선 최소시간을 저장할 변수를 지정했다. 변수 초기 값은 가장 오래걸리는 시간+1을 했다. 그리고 모든 높이를 확인하기 위해 0~256까지.. 2022. 2. 25.
2022.02.25 [백준] (python 파이썬) 나무 자르기 https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 풀이 이 문제에서 필요한 나무를 가져가기 위한 절단기의 높이를 완전탐색으로 모두 확인하면 시간초과가 발생할 것이다. 그래서 이분탐색을 이용하여 코드를 작성했다. 우선 이분탐색을 할 범위를 정해줘야한다. 그래서 시작점을 0, 끝점을 입력받은 나무 중 가장 높은 나무로 설정했다. 그리고 binary_search함수를 만들어 이분탐색을 했다. while문에서 mi.. 2022. 2. 25.
2022.02.25 [백준] (python 파이썬) 프린터 큐 https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 풀이 해당 문제는 입력 받은 문서 중, 제일 앞에 있는 문서의 중요도가 뒤에 위치한 문서의 중요도보다 낮으면 해당 문서를 뒤로 보내야한다. 그래서 양방향 입출력이 가능한 deque을 이용하여 코드를 작성했다. 문서를 deq에 저장할 때, 각 문서가 입력된 순서와 중요도를 (중요도, 입력된 순서)로 저장해서 중요도 순으로 프린트할 때, 원하는 순서의 문서가 몇번째로 출력되는지 체크했다. 또한 제일 앞에.. 2022. 2. 25.
2022.02.25 [백준] (python 파이썬) 스택 수열 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 풀이 이 문제는 1~n까지 배열에 넣으면서 최근에 들어간 배열의 값과 수열의 값을 비교해야한다. 그래서 stack을 이용했다. 1. arr에 주어진 수열을 넣는다. 2. while문을 시작하기 전에 1을 stack에 넣는다.( 이유는 만약 수열의 첫번째 숫자가 1이라도 일단 스택에 넣었다가 빼야하기 때문에 1을 넣었.. 2022. 2. 25.
728x90
반응형