본문 바로가기

분류 전체보기

(62)
알고리즘 연습5 프로그래머스 - 전화번호 목록 배열 a를 받아서 a의 원소가 다른 원소의 접미사가 될 수 있는지 묻는 문제이다. python의 map 함수를 이용하면 간단히 풀 수 있다. 소트를 하는 이유는 작은값부터 순서대로 있어야지만 접미사인지 아닌지 판단이 되기 때문이다. https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 첫 번째 풀이 def solution(phone_book): answer = True phone_book.sort() for p..
알고리즘 연습 프로그래머스 - 완주하지 못한 선수 프로그래머스의 hash 문제 lv.1 https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 첫 번째 풀이 단순히 두 배열을 소트해서 앞에서부터 하나씩 지우다가 다른 서로 값이 다를때 참가자의 값을 리턴하면 된다. 근거는 선수의 이름은 참가자가 한명 더 많을 뿐, 그 사람을 뺀 나머지는 모두 같다고 했기 때문이다. def solution(participant, completion): partici..
알고리즘 풀이 -3 프로그래머스 heap 문제 "더 맵게" 문제를 푸는데 사용된 아이디어는 간단하다. 우선 반복문은 scoville의 최솟값이 k 이상이면 멈추게 되고, 가장 작은값과 그 다음 작은 값 * 2 한 값을 배열에 새로 푸시한다. 가장 단순한 접근이 아닐까 싶다. 그리고 주어진 scoville로 k값을 넘지 못할경우 exception을 걸어서 return -1 을 해준다. """프로그래모스 더 맵게 문제 최소 힙 쓰면 풀릴듯 힙은 2진 트리 바탕으로 만드는 자료구조!""" '''첫 번째 풀이 난 힙같은거 모르겠다!''' def solution(scoville, K): answer = 0 while min(scoville) < K: try: idx = scoville.index(min(scoville)) minScoville = scoville.pop(..
알고리즘 풀이 -2 프로그래머스 스택/큐 프린터 문제 최초 풀이 스택을 활용하면 쉽게 풀릴 것 같은데 잘 모르겠다. 일단 어떻게든 풀자. def solution(priorities, location): queue = [(i,p) for i,p in enumerate(priorities)] for idx,value in enumerate(priorities): init_values[idx] = value max_num = max(init_values.values()) answer = 0; while init_values[location] > 0: for i in init_values: if init_values[i] == max_num: answer = answer + 1 if i == location: return answer init_values[i] =..
알고리즘 연습 프로그래머스 스택 - 큐 기능개발 문제 풀이 사용 언어: python3 https://programmers.co.kr/learn/courses/30/lessons/42586?language=python3 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 글로 쓴 풀이 선입 선출의 queue 구조를 활용 하면 쉽게 풀릴 것 같다. # 제일 처음 작성한코드 목적 달성 위주 def solution(progresses, speeds): queue = [] answer = [] while True: if len(progresses) == 0: break; ..
[뒤늦게 시작한 알고리즘] 1편 HEAP! heap이란 최댓값 또는 최솟값을 찾아내는 연산을 빠르게 하기 위해서 고안된, 완전 2진 트리를 기본으로한 자료구조 이다. heap은 규칙에 따라서 크게 max heap과 min heap으로 나눌 수 있는데, max heap: 부모 노드는 항상 자식 노드보다 크거나 같아야 함. min heap: 부모 노드는 항상 자식 노드보다 작거나 같아야 함. 이고, 힙 전체를 통틀어 이 규칙은 꼭 유지 되어야 해. min heap에 대해서 얘기를 해보자면, root에는 가장 작은 값이 들어가고, 그 아래로 완전 2진 트리의 형식으로 값들이 채워지게 되어있어. 각각의 노드는 자기 부모 노드보다 작은 값을 가질 수 없게 되어 있지, 즉 자기 부모보다만 작은 값을 가진다면 상위에 있는 다른 노드보다 작은 값을 가질 수도 ..
중국 주식이 폭락합니다. 중국 정부의 자국 기업 규제에 의해서 중국 주식이 폭락하고 있습니다. 알리바바, 텐센트, 바이두 등의 대형 기업들도 이 현상을 피하지 못한 것으로 보입니다. 이러한 주식 가격 하락의 시발점은 중국 정부가 디디추싱이라는 중국 1위 차량 공유업체의 앱을 앱스토어에서 삭제 시킨 사건으로부터 시작 되었습니다. 업계 1위 기업을 하루아침에 시장에서 퇴출 시킨 그 사건은 중국 내에서 공산당에 저항하면 어떻게 되는지 다시 한 번 각인 시켜 주었고, 세계의 투자자들은 중국이라는 국가 그 자체의 리스크에 우려를 표하기 시작했고, 전 세계의 증권사들은 중국 주식들의 목표 가격을 하향 조정하기 시작했고, 일각에서는 중국 주식들이 상장 폐지 될 수도 있다고 투자자들에게 겁을 주기 시작했습니다. 때 마침 터진 중국 당국의 사교..
[TYPE SCRIPT] MAP 함수 오류 (해결책) This expression is not callable. Each member of the union type .. 어쩌구 하는 오류가 발생할 경우가 있을 것이다. 아마도 MAP함수를 DYNAMIC하게? 쓸때 자주 발생할 텐데, 발생하는 경우는 대부분 즉, 배열의 타입을 명확하게 명시하지 않을때 발생한다. 물론 아래의 경우에 number[] 또는 string[]이라고 명시를 했지만, 조금 더 명시적으로 표시해야 한다. const a number[] | string[] = [] a.map((item) => console.log(item)) 이처럼 말이다. const a = (string | number)[] = [] a.map((item)=>console.log(item)) 그러나 사실 이렇게 단편적으로..