3

카운팅은 애매하다. (#3190 뱀)

#3190 뱀 https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 문제가 짧아서인지 알고리즘을 꽤 풀어내서인지는 잘 모르겠지만 문제를 푸는 방법이 명료하게 보였다. 그래서 바로바로 구현했다. 뱀의 이동을 고민하던 터에, 큐를 사용하면 된다는 아이디어가 떠올랐고 적중했다. from copy import deepcopy n = int(input()) maps = [[0 for _ in range(n)] for __ in range(n)] for _ in ra..

프로그래머스 고득점 kit 풀기 #스택/큐

1. 기능개발 큐를 사용하면 충분히 해결할 수 있는 문제이다. 다른 사람의 코드를 보다보면, 극단적으로 짧은 코드가 많은 추천 수를 받는걸 확인할 수 있다. 너무 좋은 코드이지만 이해가 어려워 나는 아래와 같은 형태의 조금 더 직관적인 코드를 선호하는 편이다. (컴팩트하게 못짜서 그러는거 맞음ㅋㅋ) 내 코드 from collections import deque def solution(progresses, speeds): answer = [] progresses = deque(progresses) speeds = deque(speeds) while progresses: result = 0 while len(progresses) > 0 and progresses[0] >= 100: progresses.pop..

취약점 극복하기 : 힙

자료구조 - 힙 (heap) : 여러 개의 값 중에서 가장 크거나 작은 값을 빠르게 찾기 위해 만든 이진트리. (Heap Tree) 영어단어 heap은 쌓아올린 더미를 의미한다. 상위 노드의 값은 항상 하위 노드보다 크거나 작아야하는 규칙이 있다. 클 경우 -> 최대 힙 (Max Heap) 작을 경우 -> 최소 힙(Min Heap) 이런 특성은, 우선순위 큐 (priority queue)를 만드는데 주로 사용된다. 데이터의 삽입과 삭제의 시간복잡도가 O ( log N ) 인 만큼 최댓값, 최솟값 탐색에 유용하게 사용된다. 힙을 직접 구현하는 작업도 언젠가 필요한 일이지만 당장에 다음주 주말 코딩테스트가 급하기 때문에 지금은 python 라이브러리를 활용한 방법을 중심으로 알아보자. 파이썬 라이브러리 이름..

728x90