728x90

𝘼𝙣𝙖𝙡𝙮𝙨𝙞𝙨 89

[Python] 프로그래머스 - 프로세스 [스택/큐]

https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr from collections import dequedef solution(priorities, location): answer = 0 dq = deque() #prio dq_idx = deque() #prio 인덱스 num = [0] * 101 for i in priorities : dq.append(i) for i in ra..

통계 개념

1. 다중회귀모델 y = bX + e 에서 회귀계수 b의 정의를 행렬연산으로 증명하라. 그리고 b가 불편추정량임을 증명하라. → 완전한 증명문제, b 정의하는 식 유도 2. 표본분산에 관한 잘못된 공식을 주어주고 이 공식이 왜 틀렸는지(불편추정량이 아닌지) 밝히고 맞게 수정하라. → 표본분산은 n으로 나누는게 아니라 n-1로 나눠야 하는지를 밝히라는 문제 불편 추정량 추정된 모수의 기대값이 모집단의 실제 모수와 같은 성질을 갖는 추정량입니다. 다시 말해, 불편 추정량은 표본으로부터 계산된 추정치가 편향되지 않는 추정량입니다. 이는 모집단의 모수를 추정할 때, 표본을 사용하여 그 추정치가 얼마나 정확한지를 나타냅니다. 자유도 통계적 추정이나 검정에서 사용되는 매개변수 중 하나입니다. 주어진 문제의 자유도는..

[Python] 짝지어 제거하기 (deque)

https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(s): s_list = list(s) for j in range(len(s_list)//2) : for i in range(len(s_list)-1) : if s_list[i] == s_list[i+1] : s_list.pop(i) s_list.pop(i) break if len(s_list) == 0 : return 1 return 0 시간초과 에러뜸! 인덱싱 방식은 오래..

Python fibo

재귀함수 사용시 런타임 에러날때, def solution(n): pre = 0 # 이전 피보나치 수를 저장하는 변수 current = 1 # 현재 피보나치 수를 저장하는 변수 # 2부터 n까지 순회 for i in range(2, n+1): # 현재 피보나치 수는 이전 두 피보나치 수의 합 # 이전 피보나치 수는 갱신하기 전의 현재 피보나치 수 current, pre = current + pre, current # n번째 피보나치 수를 1234567로 나눈 나머지를 반환 return current % 1234567

다이나믹 프로그래밍

메모리를 적절히 사용해 수행 시간 효율성을 비약적으로 향상시키는 방법 다이나믹 프로그래밍 = 동적 계획법 동적 할당 : 프로그램이 실행되는 도중에 실해에 필요한 메모리를 할당하는 기법 조건1) 최적 부분 구조 : 큰 문제를 작은 문제로 나눌 수 있으며 작은 문제의 답을 모아서 큰 문제를 해결할 수 있음 조건2) 중복되는 부분 문제 : 동일한 작은 문제를 반복적으로 해결해야 함 EX. 피보나치 수열 - 점화식 : 인접한 항들 사이의 관계식 - 이런 수열을 배열이나 리스트를 이용해 표현함 # 피보나치 함수를 재귀함수로 구현 def fibo(x) : if x == 1 or x == 2 : return 1 return fibo(x-1) + fibo(x-2) - 지수 시간 복잡도를 가짐! - 비효율적인 문제 - ..

이진 탐색 알고리즘

이진 탐색 : 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법 시간 복잡도 : O(log N) # 이진 탐색 소스코드 구현 (재귀 함수) def binary_search(array, target, start, end) : if start > endd : return None # 찾은 경우 중간점 인덱스 반환 if array[mid] == target : return mid # 중간점의 값보다 찾고자 하는 값이 작은 경우 왼쪽 확인 elif array[mid] > target : return binary_search(array, target, start, mid - 1) # 중간점의 값보다 찾고자 하는 값이 큰 경우 오른쪽 확인 else : return binary_search..

728x90