[백준][Python] 1715번 카드 정렬하기 - 골드 4
·
백준/스택 & 큐
https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 문제 풀이 우선순위 큐를 활용하여 문제를 구해주면 됩니다. 문제의 예시를 통해 직접 구해보면 알다시피 다음과 같은 로직이 성립하게 됩니다. 1. 큐 안에서 가장 작은 수 2개를 꺼내서 더해준다. 2. 더한 값을 총합(변수:ans)에 더해준다. 3. 더한 값을 다시 큐에 넣어준다. 4. 1-3과정을 큐 안에 원소가 2개 이상일 때까지 반복해준다. 코드 # 1715번 카드 정렬하기 fr..
[백준][Python] 10799번 쇠막대기 - 실버 2
·
백준/스택 & 큐
https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 문제 풀이 1. 레이저를 뜻하는 ')' 과 쇠막대기의 끝점임을 알리는 ')'의 구분이 필요한 문제여서 flag라는 변수에 직전에 나왔던 문자를 저장해줘서 i 이전에 나온 문자에 따라 레이저인지 쇠막대기인지 구분해주었다. 만일 flag에 '('가 저장되었을 경우에 i가 ')'이면 레이저를 뜻하고, flag에 ')'가 저장되었을 경우에 i가 ')'이면 쇠막대기의 끝점을 뜻한다. 2. 쇠막대기의 끝점이 등장하면 ..
[백준][Python] 28278번 스택 2 - 실버 4
·
백준/스택 & 큐
https://www.acmicpc.net/problem/28278 28278번: 스택 2 첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. 출력을 요구하는 명령은 하나 이상 주어진다. www.acmicpc.net 문제 풀이 간단한 스택 구현 문제입니다. 조건문에 신경써서 문제를 풀어주세요. 코드 # 28278번 스택 2 import sys st = [] t = int(input()) for _ in range(t): order = sys.stdin.readline().rstrip().split() if len(order) == 2: st.append(order[1]) else: if order[0] == "2": if st: pri..
[백준][Python] 3986번 좋은 단어 - 실버 4
·
백준/스택 & 큐
https://www.acmicpc.net/problem/3986 3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 www.acmicpc.net 문제 풀이 1. 좋은 단어라는 것이 무엇인지 처음에 파악하는게 중요하다고 생각했습니다. 좋은 단어는 다음과 같이 아치형 곡선을 그렸을 경우. 겹치지 않고 모두 짝을 이뤄야 합니다. 따라서 좋은 단어는 AABB, ABBA와 같은 글자들입니다. 2. 규칙을 파악해보니 좋은 단어의 조건은 다음과 같습니다. 1. A, B의 각 글자 수가 짝수여야합니다. 2. 아치형 곡선이 겹치는 경우는 짝을 이뤄주지 못하는 글자가..
[백준][Python] 5397번 키로거 - 실버 2
·
백준/스택 & 큐
https://www.acmicpc.net/problem/5397 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net 문제 풀이 처음에는 리스트 한 개와 인덱스를 이용해서 커서의 위치를 구현해주려 했으나 커서를 기준으로 오른쪽과 왼쪽의 문자를 알려주는 두 개의 리스트를 사용하면 훨씬 쉽게 구현할 수 있다는 것을 알게 되었습니다. [커서 기준 왼쪽 문자들] 커서 [커서 기준 오른쪽 문자들] 이렇게 구현하면 훨씬 쉽게 구현할 수 있다. 정답을 출력할 때 오른쪽 문자들은 마지막에 한번 뒤집어줘야한다. appen..
개발자 성현
'백준/스택 & 큐' 카테고리의 글 목록