본문 바로가기

분류 전체보기

(129)
[알고리즘/프로그래머스] 그리디 - 조이스틱 탐욕법(Greedy) > 조이스틱 (개인적으로 어려웠음) 코딩테스트 연습 - 조이스틱 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다 programmers.co.kr 만들고자 하는 이름 name이 매개변수로 주어질 때, 이름에 대해 조이스틱 조작 횟수의 최솟값을 return 하도록 solution 함수 만들기 실패한 코드 아래의 코드는 테스트케이스 11번이 틀림 --> "ABAAAAAAAAABB" 일 때 7이 출력되야 하는데 15가 출력됨 한 방향으로 가는 것만이 아니라 2번째 B까지 갔다가 다시 돌아가는 것이 빠르기 때문에 출력값이 다름 def s..
[알고리즘/프로그래머스] 2019 KAKAO BLIND RECRUITMENT - 실패율 2019 KAKAO BLIND RECRUITMENT > level1 실패율 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 실패율 : 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수/스테이지에 도달한 플레이어 수 N : 전체 스테이지 개수 stages : 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 실패율이 높은 스테이지부터 내림차순으로 스테이지 번호가 담겨있는 배열을 리턴 import heapq def solution(N, stages): fail = {} heapq.heap..
[알고리즘 / 자료구조] 트리(Tree) 공부 : 동빈나 유튜브 트리 : 가계도와 같은 계층적인 구조를 표현할 때 사용할 수 있는 자료구조 트리 관련 용어 - 루트 노드(root node) : 부모가 없는 최상위 노드 - 단말 노드(leaf node) : 자식이 없는 노드 - 크기(size) : 트리에 포함된 모든 노드의 개수 - 깊이(depth) : 루트 노드부터의 거리 - 높이(height) : 깊이 중 최댓값 - 차수(degree) : 각 노드의 자식 방향 간선 개수 -- 자식의 개수 - 기본적으로 트리의 크기가 N일 때, 전체 간선의 개수는 N-1 이진 탐색 트리 (Binary Search Tree) : 이진 탐색이 동작할 수 있도록 고안된 효율적인 탐색이 가능한 자료..
[알고리즘 / Oracle] 프로그래머스 - 보호소에서 중성화한 동물, 우유와 요거트가 담긴 장바구니 프로그래머스 level4 보호소에서 중성화한 동물 코딩테스트 연습 - 보호소에서 중성화한 동물 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr -- 중성화 X Intact -- 중성화 0 Spayed or Neutered SELECT INS.ANIMAL_ID, INS.ANIMAL_TYPE, INS.NAME FROM ( (SELECT ANIMAL_ID, ANIMAL_TYPE, NAME FROM ANIMAL_INS WHERE SEX_UPON..
[알고리즘 / 자료구조] 우선순위 큐(Priority Queue)와 힙(Heap) 공부 : 동빈나 유튜브 + https://gmlwjd9405.github.io/2018/05/10/data-structure-heap.html 우선순위 큐 : 우선순위가 가장 높은 데이터를 가장 먼저 삭제하는 자료구조 구현 방법 1) 단순히 리스트를 이용하여 구현 2) 힙(heap)을 이용하여 구현 ( 파이썬 - import heapq) 우선순위 큐 구현 방식 삽입 시간 삭제 시간 리스트 O(1) O(N) 힙(Heap) O(logN) O(logN) 단순히 N개의 데이터를 힙에 넣었다가 모두 꺼내는 작업은 정렬과 동일 ( 힙 정렬 ) -- O(NlogN) Heap - 완전 이진 트리 자료구조의 일종 - 항상 roo..
[알고리즘 / Oracle] 프로그래머스 - 입양 시각 구하기(2) 프로그래머스 level4 입양 시각 구하기(2) 코딩테스트 연습 - 입양 시각 구하기(2) ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 programmers.co.kr SELECT H.HOUR, NVL(COUNT, 0) as COUNT FROM (SELECT TO_CHAR(DATETIME, 'HH24') AS HOUR, COUNT(*) AS COUNT FROM ANIMAL_OUTS GROUP BY TO_CHAR(DATETIME, 'HH24')) A RIGHT JOIN (SELEC..
[알고리즘/프로그래머스] 스택/큐 - 다리를 지나는 트럭, 주식가격 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지? 다리에는 트럭이 최대 bridge_length대 올라갈 수 있다. 다리는 weight 이하까지의 무게를 견딜 수 있다. 단, 다리에 완전히 오르지 않은 트럭의 무게는 무시 처음에 문제 이해를 잘못 해서 푸는데 엄청 헤맸다 ㅠ ㅠ 1. 트럭은 다리 길이만큼 움직여서 다리를 건너가야 한다. 다리를 1칸씩 움직일 때 마다 1초가 걸린다. 2. 다리 마지막에 위치한 트럭이 나가면서 ..
[알고리즘/프로그래머스] 스택/큐 - 기능개발, 프린터 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr progresses -- 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 speeds -- 각 작업의 개발 속도가 적힌 정수 배열 각 배포마다 몇개의 기능이 배포되는지 ? 접근 방법 - stack을 사용( python에서는 list로 구현 가능 ) - progresses 리스트에 speeds를 더해주면서 첫번째 값이 100 이상이 되면 배포가 가능한 작업을 모두 카운트 후 제거 - progresses 리스트가 비게 되면 반복문..