백준에 대가리 깨지는중 15

[백준] 골드4 이중 우선순위 큐

https://www.acmicpc.net/problem/7662 7662번: 이중 우선순위 큐 입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫째 줄에는 Q에 적 www.acmicpc.net 이중 우선순위 큐를 구현하여, D -1일때 우선순위가 낮은 숫자를 제거하고, D 1 일때 우선순위가 높은 숫자를 제거할 수 있도록 만드는 문제이다. 당연히 골드문제이기에 시간초과를 고려하여 코드를 효율적이게 짜는 것이 제일 중요했다. 우선순위 큐 이기에 heapq를 import하는것을 기반으로 문제풀이를 생각해보았다. heapq의 heappush의 시간복잡도 O(logn)임을 이용하고, 추가적..

[백준] 실버2 최소 힙, 최대 힙

https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net solve.ac에 있는 Class 3의 문제..

[백준] 골드5 5430 AC

https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 이름처럼 에이씨(ㅂ..)를 하고싶었던 문제였다. (솔직히 정답률 19퍼 인거보고 쫄았음) 나름 "단순해보이는" 문제였다. 이유는 다음과 같다. 1. 명령어를 입력받는다. 2. 주어진 명령어는 단순하다. (R : 뒤집기, D : 첫번째 요소 지우기) 3. 주어진 명령어대로 수행한 이후, 출력한다. 당장 봐도 쉬운 수준이지만...이건 골드5 문제이다. 당연히 그대로 수행하면 바로 시간초과로 혼나버린다. 그래서, 뒤집을때도 첫번째 요소, 안뒤집을때도 첫번째 ..

[백준] 골드5 10026 적록색약

https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 이 문제는 grid에 'R', 'G', 'B', 가 표현된 곳에서 같은 색상의 구역이 몇개나 있는지 구하는 문제이다. 즉, 하나의 색상을 탐색하기 시작해서 주변에 같은 색상이 있는지 탐색해야하는 문제이다. 그러면, dx, dy를 선언하여 현재 위치에서 상,하,좌,우로 이동할 수 있게끔 해야한다. dx = [0, 0, 1, -1] dy = [1, -1, 0, 0] 이제 어떤 알고리즘을 택할 ..

[백준] 실버3 9375 패션왕 신해빈

https://www.acmicpc.net/problem/9375 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 이 문제를 풀기 위해서 첫번째 했던 생각은 처음 딕셔너리 타입으로 입력을 받기로 하였다. 최초 입력이면 d[type] = 1, 이외에는 d[type] += 1 이후, 만약 d의 길이가 1이면 바로 결과를 d.values()의 값으로 출력하도록 하였다. 그외의 1보다 큰 d라면, list(comb(range..