728x90 TIL - 프로그래밍/Python 알고리즘198 [프로그래머스] 불량 사용자 - Python https://school.programmers.co.kr/learn/courses/30/lessons/64064 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 ban_ls[i] : banned_id[i]에 해당하는 제제 아이디 아이디의 길이가 같고 '*'을 제외한 나머지가 같은 경우 제제 아이디 목록으로 될 수 있는 모든 경우 구하기 product(*list) : 각 요소마다 1개씩 뽑아줌 중복아이디 없고 처음 나오는 목록일 경우 추가! (a,b,c) == (b,c,a) from itertools import product def solution(.. 2023. 3. 2. [프로그래머스] 삼각 달팽이 - Python https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 삼각형이 반시계 방향으로 돌 때 이동방향 아래로 -> 오른쪽으로 -> 왼쪽 대각선 위로 -> 아래로 ...(반복) 삼각형 행번호, 열번호의 조건 0 2023. 3. 2. [프로그래머스] 큰 수 만들기 - Python https://school.programmers.co.kr/learn/courses/30/lessons/42883# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 조합으로 풀었더니 시간 초과 최적의 해를 찾는 탐욕법 가장 큰 수를 찾는 것이므로 n자리 숫자를 최대한 크게 만들어주기 이전 숫자가 작으면 제거 숫자가 내림차순이어서 stack에 다 들어가는 경우!!! 이 부분때문에 테스트케이스 12번이 계속 틀렸음 '654321'일 때 k가 1인 경우 즉, k개 제거를 못한 경우 stack에서 뒤에서 k개를 제거하면 된다 stack[:-k] def sol.. 2023. 3. 2. [230228] 소수 구하기(에라토스테네스의 체) - Python 원래 구하던 소수 구하기 나누어 떨어지면 약수가 존재하므로 소수X 시간이 오래 걸려 효율성에서 실패할 확률 높음 def isprime(n): for i in range(2,int(n**0.5)+1): if n%i == 0: return False else: return True 에라토스테네스의 체 가장 먼저 소수를 판별할 범위만큼 배열을 할당 후 이후에 하나씩 지워나가는 방법 ex) 2의 배수 지우기, 3의 배수 지우기, 5의 배수 지우기.... O(n**0.5) def solution(n): arr = [i for i in range(n+1)] for i in range(2,int(n**0.5)+1): if arr[i]: j = 2 # i의 배수 지우기 while i*j 2023. 2. 28. [230228] heapq (추가, 삭제, 리스트를 heap으로 변환) - Python python의 내장 모듈 이진 트리(binary tree) 기반의 최소 힙(min heap) 자료구조를 제공 리스트의 최솟값에 작업 / 최댓값에 작업이 필요한 경우 사용!!! heapq import heapq heap에 추가 최초 빈 리스트 생성! heap = [] heapq.heappush(heap,추가할 원소) heap에서 원소 삭제 리스트 최솟값이 pop heapq.heappop(heap) 기존 리스트를 heap으로 변환 l = [1,2,3.4] heapq.heapify(l) 2023. 2. 28. [프로그래머스] 야근 지수 - Python https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 실패1 - 가장 많이 남은 작업량 1만큼 처리 효율성 시간초과로 실패 .sort()는 시간복잡도가 최악의 경우 O(nlogn)이다 def solution(n, works): for _ in range(n): works.sort(reverse=True) if works[0] > 0: works[0] -= 1 else: break return sum([i**2 for i in works]) 실패2 효.. 2023. 2. 28. 이전 1 ··· 5 6 7 8 9 10 11 ··· 33 다음 반응형