본문 바로가기

공부-코딩테스트/파이썬-코딩테스트-편의기능5

heapq import heapq heapq.heappush(리스트,값) heapq.heappop(리스트) 기본적으로 최솟값이 리스트[0]에 위치해 있는 자료구조이다. 완전이진트리를 구성하며 삽입, 삭제 모두 시간복잡도가 log(N)을 따르는 엄청난 성능을 자랑한다. push를 통해 값을 넣은 다음 pop을 하면 리스트 내의 가장 작은 값이 나오게 된다. 여러 값들 중에서 최소, 최대 값을 제거해야 하는 기능이 필요할 때 사용할 수 있을 것이다. 관련 문제 1781번: 컵라면 상욱 조교는 동호에게 N개의 문제를 주고서, 각각의 문제를 풀었을 때 컵라면을 몇 개 줄 것인지 제시 하였다. 하지만 동호의 찌를듯한 자신감에 소심한 상욱 조교는 각각의 문제에 대해 데드라 www.acmicpc.net 2022. 12. 12.
약수 구하기 def divisor(num): arr = [] for i in range(1,int(num**(0.5))+1): if num % i == 0: arr.append(i) if i**2 != num: arr.append(num//i) return sorted(arr) divisor(10) => 결과 [1,2,5,10] n의 약수를 구할 때 n이하의 수를 전부 확인할 필요가 없다. n의 제곱근 이하의 수에서 탐색을 하여 나누었을 때 나머지가 없는 값들이 약수라고 할 수 있으며 이 때 약수* x = num 이여야 하는데 x또한 약수가 될 것이기에 x도 arr에 추가한다. 단 num이 제곱으로 만들어지는 수일 경우 x가 중복해서 arr에 들어갈 수 있기 때문에 이러한 경우를 배제하고 arr를 만들어가는 식으로 .. 2022. 2. 21.
파이썬 format함수 코딩테스트를 연습할 때 재귀호출을 하는 경우가 많다. 자신이 의도한 대로 데이터가 잘 전달되는지 확인하는데 유용한 함수 중 하나가 format함수이다. '{}'.format(데이터) 식으로 사용할 수 있다. 작은따옴표, 큰따옴표안에 {}를 적고 format에 {} 갯수만큼 전달하면 치환되는 형식이다. 예시 결과 {} 와 인수 순서대로 치환된다. 2022. 1. 5.
파이썬 dictionary 사용 파이썬의 dictionary는 key:value 형태로 저장하는 형태이다. dict={} 식으로 빈 dictionary를 생성할 수 있다. 사용1 : 고유값이 존재하고 시계열 처리가 필요한 상황 특정 고유값으로 정보를 저장할 필요가 있으며 처리순서에 영향을 받는 경우에 유용하게 쓰인다. dict[key]=value를 하면 dict에서 key값이 없으면 새롭게 추가하고, key값이 존재한다면 value값으로 새롭게 갱신한다. 예시 문제 https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 .. 2021. 12. 26.
달팽이 배열 만들기 (재귀함수사용) 목표 : 대부분 한 번쯤은 봤을 달팽이 배열을 출력하는 함수를 코딩 코딩테스트를 볼 때 기본적으로 구현할 필요가 있는 부품으로 사용되는 것을 종종 보았다. 단순히 구현할 수 있었으나 막상 코딩테스트를 할 때 시간이 많이 걸린 경험이 있다. 시간 단축을 위해서 익숙해질 필요가 있다 생각하였다. 범용적으로 사용하기 위해 행, 열이 같을 필요가 없고, 시작값을 선택할 수 있는 달팽이 배열을 생성하는 함수를 코딩해 보았다. 행,열 값이 꼭 같을 필요가 없고, 1*1이나 1*6 사각형에도 적용할 수 있도록 코드하는 것이 목표. 1이상의 행,열 값과 시작하고자 하는 값을 input으로 받는다. import numpy as np def TMP(row,column,start): if row==1 or column==1.. 2021. 12. 26.