프로그래머스 | 다리를 지나는 트럭 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(bridge_length, weight, truck_weights): bridge = [0] * bridge_length # 다리 onbridge = sum(bridge) # 다리 위 트럭 하중 answer = 0 # 시간 # 다리 위의 트럭이 없을 때까지(=모든 트럭이 다리를 건널 때 까지) while bridge: answer += 1 onbridge -= bridge.pop(0) # 맨 앞에 위치한 트럭이 다리를 지나면 하중 감소 # 남은 대기 트럭이 있으면 if truck_..
KT 에이블스쿨 AIVLE school 4기 AI트랙 8-9주차 후기
·
KT에이블스쿨
8-9주차 일정 9/25 미니프로젝트 3차 9/26 - 10/6 언어지능 딥러닝 9/26 - 10/6 언어지능 딥러닝 미프는 저번 글에 다 적었으니까 생략하고 언어지능 딥러닝에 대해 이야기를 꺼내보자면... 개인적으로 언어지능 딥러닝은 내 기대치를 충족시키지는 못했다.(블로그 주인장 개인의 의견입니다!!!!!) '언어지능 딥러닝'을 하면 바로 '자연어 처리'가 생각나는데 자연어 처리에 대한 내용은 많이 배우지 못한 것 같아서... 배운 거라도 잘 정리해야지!! TF-IDF $ TF(t, d) $: 문서 d에서 단어 t의 등장 횟수 $ IDF(t, D) $: $ DF $의 역수(Inverse) $ DF(t,D) $: 전체 문서 D에서 단어 t가 등장한 문서의 수 $$ TF-IDF = TF(t,d) * ID..
프로그래머스 | 롤케이크 자르기 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 시도한 코드 def solution(topping): answer = 0 for i in range(1,len(topping)): left = set(topping[:i]) right = set(topping[i:]) if len(left)==len(right): answer += 1 return answer 토핑의 가짓수를 구해야 하므로 호기롭게 set으로 코드를 작성하고 제출했지만 마주친 결과는 시간초과였다. 어떻게 시간초과를 해결해야 할지 모르겠어서 힌트를 찾아본 결과 딕셔너리를 이용하면 시간을 줄..
python | itertools.product()를 사용해 곱집합 구하기(데카르트 곱)
·
TIL/python
집합에서 곱집합 또는 데카르트 곱은 각 집합의 원소를 성분으로 하는 튜플들의 집합을 말한다. 쉽게 말해, 두 집합 A = {1, 2}, B = {3, 4}가 있을 때 A의 원소와 B의 원소를 곱해 나올 수 있는 모든 경우의 수를 담고 있는 집합 {3, 4, 6, 8}이다. 경우의 수는 사칙연산으로 쉽게 구할 수 있지만, 집합을 구하기 위해서는 itertools 라이브러리의 product를 사용한다. 순열과 조합을 구하는 permutations, combinations과 사용법은 동일하다. product(A, B)로 A, B에 iterable한 객체를 전달하면 A와 B의 원소들을 가지고 만들 수 있는 모든 경우의 수를 보여준다. 다음은 숫자 리스트와 문자열로 product를 사용한 예이다. 의도한 바대로 ..
프로그래머스 | 더 맵게 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import heapq def solution(scoville, K): answer = 0 # 섞은 횟수 heapq.heapify(scoville) # 최소 heap # 새로운 스코빌 지수 계산이 가능할 때(len >= 2) while len(scoville) >= 2: min1 = heapq.heappop(scoville) # 최소값이 K 이상이면 조건을 만족하므로 반복문 종료 if min1 >= K: return answer # 최소값이 K 미만이면 새로운 스코빌 지수 계산 else: min2 = h..
프로그래머스 | 의상 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(clothes): # 각 종류별 가진 의상을 저장 (종류:[이름, 이름, ...]) closet = {} for name, kind in clothes: if kind in closet.keys(): closet[kind] += [name] else: closet[kind] = [name] # A의 종류가 N개, B의 종류가 M개 일 때 가능한 모든 경우의 수 (N+1)(M+1) answer = 1 for _, value in closet.items(): answer *= (len..