2023/03

CodingTest 감 살리기 with Programmers 코딩 테스트를 준비 하게 되어서, 기본적인 문법도 되짚고, 감을 되찾기 위해 시작합니다 예산 def solution(d, budget): answer = 0 d.sort() for b in d: if budget-b0 else abs(money-p) return answer
CodingTest 감 살리기 with Programmers 코딩 테스트를 준비 하게 되어서, 기본적인 문법도 되짚고, 감을 되찾기 위해 시작합니다 크레인 인형 뽑기 from collections import deque def solution(board, moves): answer = 0 m = [deque([]) for i in range(len(board)) ] for bo in board: for i,b in enumerate(bo): if b==0: continue m[i].appendleft(b) result = [] for move in moves: move-=1 if len(m[move])==0: continue else: result.append(m[move].pop()) if len(re..
CodingTest 감 살리기 with Programmers 코딩 테스트를 준비 하게 되어서, 기본적인 문법도 되짚고, 감을 되찾기 위해 시작합니다 숫자 문자열과 영단어 from collections import deque def solution(s): answer = 0 n=[i for i in range(10)] en = {0:"zero",1:"one",2:"two",3:"three",4:"four",5:"five",6:"six",7:"seven",8:"eight",9:"nine"} for i in range(10): n[i]=i jump=0 number = [] s = deque(s) while s: idx = s.popleft() if idx=="z": jump = 3 number.append("..
CodingTest 감 살리기 with Programmers 코딩 테스트를 준비 하게 되어서, 기본적인 문법도 되짚고, 감을 되찾기 위해 시작합니다 다트 게임 def solution(dartResult): dart = [] temp="" for index,d in enumerate(dartResult): if d=="S" or d=="D" or d=="T": dart.append(calc(int(temp),d)) temp="" elif d=="*": if dartResult[index-2]=="*": dart[-1]*=2 dart[-2]*=2 elif dartResult[index-2]=="#": dart[-2]*=2 else: dart[-1]*=2 if len(dart)>1: dart[-2]*=2 el..
CodingTest 감 살리기 with Programmers 코딩 테스트를 준비 하게 되어서, 기본적인 문법도 되짚고, 감을 되찾기 위해 시작합니다 바탕화면 정리 def solution(wallpaper): x1,x2,y1,y2 = 9999,-9999,9999,-9999 for y,wp in enumerate(wallpaper): for x,w in enumerate(wp): if w=="#": x1 = min(x1,x) x2 = max(x2,x) y1 = min(y1,y) y2 = max(y2,y) return y1,x1,y2+1,x2+1 개인 정보 수집 유효 기간 def solution(today, terms, privacies): answer = [] dic = {} ty,tm,td = map(in..
CodingTest 감 살리기 with Programmers 코딩 테스트를 준비 하게 되어서, 기본적인 문법도 되짚고, 감을 되찾기 위해 시작합니다 타겟 넘버 from collections import deque def solution(numbers, target): answer = 0 numbers = deque(numbers) result = deque() while numbers: n = numbers.popleft() temp = deque() if len(result)==0: result.append(n) result.append(-n) else: for r in result: temp.append(r+n) temp.append(r-n) result = temp print(result) for ..
참조 투명(referential transparency) 함수형 프로그래밍에서의 참조 투명(referential transparency)이란, 동일한 입력 값에 대해 항상 동일한 결과를 반환하는 함수를 의미합니다. 즉, 어떤 함수의 결과가 그 함수의 인자에만 의존하고, 그 외의 외부적인 상태나 환경에 의존하지 않는 함수를 참조 투명 함수라고 합니다. 예를 들어, 다음과 같은 함수를 생각해봅시다 def add(x, y): return x + y 이 함수는 참조 투명합니다. 왜냐하면, 인자 x와 y에 따라 결과가 달라지지만, 같은 인자에 대해서는 항상 동일한 결과를 반환하기 때문입니다. 이것은 이 함수가 다른 상태나 환경에 영향을 받지 않고, 순수하게 입력 값에만 의존하기 때문입니다. 반면에, 다음과 같은 ..
꼬리 재귀(tail recursion) Intro. 꼬리 재귀가 있기에 함수형 언어에서 매개변수에 상태를 저장하며, 재귀를 할 때 최적화 된다! 꼬리 재귀 설명을 처음 들었을 때는 그냥 프로그래밍 기법이지 않을까 했는데 함수형 언어에서는 최적화를 지원 한다고 한다 설명 재귀 함수의 한 종류로, 함수가 반환하는 값이 마지막에 재귀 호출하는 함수에서 계산되는 경우를 말합니다. 일반적인 재귀 함수에서는 함수 호출이 스택에 계속 쌓이게 되는데, 이러한 스택의 쌓임이 많아질 경우 메모리를 많이 사용하고 성능에 영향을 미칠 수 있습니다. 하지만 꼬리 재귀는 함수 호출 후 더 이상 수행할 작업이 없는 경우, 이전 호출 스택 프레임을 재사용하고 추가적인 스택 프레임을 쌓지 않는 방식으로 최적화합니다. 이를 통해 메모리..
CodingTest 감 살리기 with Programmers 코딩 테스트를 준비 하게 되어서, 기본적인 문법도 되짚고, 감을 되찾기 위해 시작합니다 가장 큰수 def solution(numbers): numbers= list(map(str,numbers)) numbers.sort(key=lambda x :x*3,reverse=True) return str(int(''.join(numbers))) lambda x : x*3 을 하는 이유는 30,34,3을 정렬하면 34,3,30 이렇게 정렬이 되어야 하는데, 34,30,3 순으로 정렬이 된다. 이 때 문자열로 변환한 문자열을 3번 곱해서 정렬하면 34,3,30으로 정렬이 된다 이 방법은 경험적으로 발견된 방법이라고 한다. 다리를 지나는 트럭 from col..
CodingTest 감 살리기 with Programmers 코딩 테스트를 준비 하게 되어서, 기본적인 문법도 되짚고, 감을 되찾기 위해 시작합니다 올바른 괄호 def solution(s): answer = True list = [] for i in s: if i=="(": list.append(i) else: if (len(list)==0): list.append(i) else: list.pop() if len(list)!=0: answer=False return answer 프린터 from collections import deque def solution(priorities, location): pd = deque(priorities) loc = deque([0 for i in range(len(p..
berom
'2023/03 글 목록 (4 Page)