본문 바로가기
728x90
반응형

Python3173

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.
2022.02.24 [백준] (python 파이썬) 랜선 자르기 https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 풀이 이 문제는 하나하나 모두 확인하면서 정답을 찾으면 시간초과를 피할 수 없다. 그래서 이분탐색을 이용해서 탐색시간을 줄였다. 우선 시작점은 가장 짧게 자를 길이인 1로 설정하고, end는 전체 랜선의 합을 n개로 나눈 값으로 설정했다. 이렇게 설정한 이유는 문제에서 남은 랜선은 다시 사용할 수 없다고 했기 때문에 전체를 하나로 만들고 n개로 나눈 값보다 항상 짧을 .. 2022. 2. 25.
2022.02.24 [백준] (python 파이썬) 제로 https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 풀이 이 문제는 입력된 값에서 0이 나오면 제일 최근에 입력된 값을 지우는 문제이기 때문에 stack을 이용했다. 0이 입력될 경우, 지울 수 있는 수가 있다고 보장되었기 때문에, stack이 비어있을 경우는 고려하지 않았다. 1 2 3 4 5 6 7 8 9 stack=[] for i in range(int(input())): num=int(input()) if .. 2022. 2. 25.
728x90
반응형