P99 레이턴시란?
P99 레이턴시란? P99는 백분위를 나타내는 것이고, 레이턴시는 뜻 그대로 지연시간을 나타낸다. 예를 들어, 어떤 서버의 P99레이턴시가 7sec이라고 하자. 100개의 요청이 들어왔을 때 99개의 요청은 7초 안에 처리되어야 한다는 뜻이다. 더 자세히 얘기를 해보자면 지연 시간 처리된 요청 수 ...
[python] 모듈과 라이브러리를 활용해야 하는 이유 (feat.백준 최대힙)
Python은 편하지만 느리다. Python은 정말 느리다. 정말 정말 느리다. 하지만 편하고 쉽다. 특히 List 자료형은 매우 쉽고 편하다. 당연히 그만큼 많은 리소스를 사용하고, 느린 편이다. 리스트를 잘 활용하면 stack, queue는 물론, tree, heap, 연결 리스트, 해시 테이블 등등등… 수많은 고급 자료형도 어렵지 않게...
[python] 리스트(List)의 복사 - 얕은 복사, 깊은 복사
List는 다양한 방법으로 복사가 가능하다. 다만, 필요 시에 따라 복사 방법을 적절히 택해야 하는데, 복사한 객체가 내부적으로 같은 메모리를 참조할 수 있기 때문이다. 이번 포스팅은 내부에 또 다른 복합자료형이 없는 1차원 배열에 국한된 이야기다. 2차원 이상의 배열에 대한 정보는 이 포스트에서 확인할 수 있다. 완전히 같은 메모리를 공...
[python] 2차원 이상의 리스트(배열) 복사하기
visited 배열을 만들 때 하는 실수들 N = 10 visited = [[0] * N] * 10 이 경우에는 위의 경우들과 조금 다른 결의 문제가 발생한다. visited[0][1] = 1 print(visited[5][1]) # 1 / ????? 이는 리스트 내부의 0번 부터 9번까지의 리스트가 똑같은 메모리를 참조하기...
[자료구조] Heap
Heap 부모 노드의 값이 자식 노드보다 항상 큰(또는 작은) 완전 이진 트리 그림을 보면 쉽게 이해할 수 있다. 이를 리스트로 표현하면 더욱 쉽게 이해할 수 있다. 왜 쓰는 걸까? max (or min) 값이 루트에 위치 기본적으로 자료구조 내의 값에서 최댓값 또는 최솟값은 항상 트리의 루트에 위치하게 된다. 해당 ...
[python] 백준 6064 - 카잉달력
백준 6064 - 카잉달력 [SILVER 1] 리버스 잉카 문명의 달력이다 엌 문제 이딴 달력을 쓰니까 망했지…라고 하기엔 우리나라도 비슷한 게 있다… M과 N보다 작거나 같은 자연수로 연도를 <x, y>와 같이 표현한다. 우리나라가 당해의 이름을 정할 때와 같은 방식이다. 갑을병정… 등의 십간(十干)과 자축인묘… 등의 십이...
[python] 백준 5525 - ioioi
백준 5525 - ioioi [SIVLER 1] 5525_ioioi 벌써 프듀 시즌1이 7년 전이다? 문제 최초 입력 N이 들어오면, N+1 개의 I와 N개의 O가 교차로 나오는 문자열을 Pn이라 한다. 즉, IOI 는 P1, IOIOI는 P2를 의미한다. N과 문자열 S의 길이, 그리고 문자열 S가 들어왔을 때, S안에는 Pn이 몇 ...
[python] 백준 5430 - AC
백준 5439 - AC [GOLD 5] 5430_AC 문제 선영이는 할 짓이 없어서 AC라는 언어를 만들었다고 한다. 커도 반 센세인가? 정수 배열을 연산하기 위한 언어로, 두 가지 함수가 존재한다. R(뒤집기)는 List.reversed(), D(드랍)은 del List[0]이다. 배열이 비어있을 때 D를 사용하면 에러가 발생한다. 함...
[python] 백준 2630 - 색종이만들기
백준 2630 - 색종이 만들기 [SILVER 2] 1과 0으로 이루어진, 길이가 똑같은 2차원 배열이 들어온다. N/2 길이의 2차원 배열로 내부를 나눌 때, 나눈 배열 안이 한 가지 수로만 이루어져 있으면 해당 색깔 (1: 파랑, 0: 하양) 색종이가 완성된 것으로 친다. 모든 부분을 나누었을 때, 각각 완성된 색종이는 몇 개인가? ...