본문 바로가기

study/알고리즘

(44)
[알고리즘 / 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 리스트가 비게 되면 반복문..
[알고리즘 / Oracle] 프로그래머스 - 입양 시각 구하기(1) 프로그래머스 level2 입양 시각 구하기(1) https://programmers.co.kr/learn/courses/30/lessons/59412 - TO_CHAR 함수를 서브쿼리로 사용 - TO_NUMBER을 빼도 정답 - EXTRACT()함수는 왜인지 자꾸 오류 발생 -- TO_CAHR 사용 SELECT HOUR, COUNT(HOUR) AS COUNT FROM (SELECT TO_NUMBER(TO_CHAR(DATETIME, 'HH24')) AS HOUR FROM ANIMAL_OUTS) GROUP BY HOUR HAVING HOUR BETWEEN 9 AND 19 ORDER BY HOUR
[알고리즘] 구현 : 시뮬레이션과 완전 탐색 공부 : 동빈나 유튜브 + 책 구현(Implementation) : 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정 - 흔히 알고리즘 대회에서는 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제를 지칭 완전탐색 : 모든 경우의 수를 주저 없이 다 계산하는 해결 방법 시뮬레이션 : 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행 예제 4 - 1 상하좌우 #여행가 A가 N*N 크기의 정사각형 공간을 벗어나는 움직임은 무시된다. #일련의 명령에 따라 개체를 차례대로 이동시킨다는 점에서 시뮬레이션 유형으로도 분류됨 직접 작성한 코드에서 수정할 부분 - (답안) if문-elif문으로 반복되는 부분을 list로 만들어 간단하게 작성 가능 dx = [0, 0,..
[알고리즘] DFS/BFS - 백준 1260번/2606번 1260번 - https://www.acmicpc.net/problem/1260 DFS와 BFS 접근 방법 - 인접행렬 방식으로 작성 - 처음 코드 작성 후 제출시 런타임에러(RecursionError) --> DFS의 재귀함수가 너무 많이 돌아가 발생 - 코드 수정 후 틀린 부분 --> DFS의 노드에서 돌아갈 곳이 없을 때의 반복을 구현하지 않았다.. - 수정해서 통과 ! import copy from collections import deque def dfs(graph, v): if graph[v][v] != -1: print(v + 1, end=' ') for i in range(len(graph)): graph[i][v] = -1 # 방문했다 while True: node = graph[v].i..