백준 3020번 : 개똥벌레 등급 : Gold V 3020번: 개똥벌레 (acmicpc.net) 3020번: 개똥벌레 개똥벌레 한 마리가 장애물(석순과 종유석)로 가득찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그 다음에는 종유석과 석순이 www.acmicpc.net 사용 알고리즘 : - 사용 자료구조 : Vector 이분 탐색이라고 쓰여있지만 딱히 이분 탐색 알고리즘을 사용하지 않아도 되는 문제이다. 첫 접근은 이중 for문으로 각 자리를 계산하는 방식으로 진행하였다. → TLE 때문에 석순과 종유석의 벡터를 각각 구현해주고, 각각의 for문을 누적 합으로 구현했다. Top vector : 종유석 지정 벡터. Bottom vecto..
NumPy를 이용한 기초 배열 명령어 NumPy (Numerical Python) : 행렬이나 대규모 다차원 배열을 쉽게 처리할 수 있도록 하는 파이썬의 라이브러리. NumPy의 특징 1. 다른 파이썬 내장 오브젝트와 달리 연속적인 메모리 블록에 데이터를 저장한다. 2. 파이썬의 list와 같은 데이터 타입보다 메모리를 적게 사용한다. 3. 반복문을 이용하지 않고 전체 배열에 대한 계산을 한 번에 수행하여 속도가 빠르다. (i.e. Vectorization or Batch) 4. 핵심 객체인 ndarray는 C 기반으로 작성되어 Overhead가 적고, 직접적으로 메모리 조작이 가능하다. ndarray (n-dimensional array) : NumPy의 핵심이며, 빠른 배열계산이 가능하고 여러 수학함..
백준 2110번 : 공유기 설치 등급 : Gold IV 2110번: 공유기 설치 (acmicpc.net) 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net 사용 알고리즘 : Binary_Search 사용 자료구조 : Vector 이분탐색의 활용 방법과 이해도를 높여줄 수 있는 문제라고 생각한다. 인접한 두 공유기 사이의 거리를 이분 탐색으로 점점 줄여나가며 탐색하는 문제. Left 지정 : 같은 지점에 공유기가 있을 순 없으므로, 두 공유기 사이의 최소 거리인..
백준 11559번 : Puyo Puyo 등급 : Gold IV 11559번: Puyo Puyo (acmicpc.net) 11559번: Puyo Puyo 총 12개의 줄에 필드의 정보가 주어지며, 각 줄에는 6개의 문자가 있다. 이때 .은 빈공간이고 .이 아닌것은 각각의 색깔의 뿌요를 나타낸다. R은 빨강, G는 초록, B는 파랑, P는 보라, Y는 노랑이다. www.acmicpc.net 사용 알고리즘 : DFS 사용 자료구조 : Vector, Deque 백준 페이지에는 알고리즘 분류에 BFS로 나와있는 것을 보아 BFS 구현을 권장하는 것 같은데, DFS로 구현하는 방법이 먼저 떠올라 이대로 진행했다. 입력은 12×6의 이차원 행렬로 받는데, 블럭이 깨졌을 때 남은 블럭들이 아래로 내려가는 것을 보아 배..