Algorithm
-
[Programmers] 진료과별 총 예약 횟수 출력하기 (SQL)Algorithm 2023. 10. 3. 22:31
- 목차 문제 설명. https://school.programmers.co.kr/learn/courses/30/lessons/132202 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 다음은 종합병원의 진료 예약정보를 담은 APPOINTMENT 테이블 입니다. APPOINTMENT 테이블은 다음과 같으며 APNT_YMD, APNT_NO, PT_NO, MCDP_CD, MDDR_ID, APNT_CNCL_YN, APNT_CNCL_YMD는 각각 진료예약일시, 진료예약번호, 환자번호, 진료과코드, 의사ID, 예약취소여부, 예약취소날짜를 나타냅니다. APNT_YMD..
-
[Programmers] 두 원 사이의 정수 쌍 ( 좌표 )Algorithm 2023. 9. 28. 08:18
- 목차 문제 설명. https://school.programmers.co.kr/learn/courses/30/lessons/181187?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr x축과 y축으로 이루어진 2차원 직교 좌표계에 중심이 원점인 서로 다른 크기의 원이 두 개 주어집니다. 반지름을 나타내는 두 정수 r1, r2가 매개변수로 주어질 때, 두 원 사이의 공간에 x좌표와 y좌표가 모두 정수인 점의 개수를 return하도록 solution 함수를 완성해주세요. ※ 각 원 위의 점도 포함하여 셉니다. 입출력 예 설명 문제 분..
-
(Algorithm) Two Pointers Technique [투 포인터]Algorithm 2023. 9. 27. 13:20
- 목차 소개. 두 개의 배열 또는 리스트가 존재한다고 가정하겠습니다. 그리고 문제의 상황은 두 자료구조가 공통으로 가지는 값들을 추출하는 상황입니다. 이때, 여러가지 알고리즘이 사용될 수 있습니다. 하지만 필연적으로 배열의 각 값들을 비교하는 알고리즘을 반드시 사용해야하는데요. 그 기술들 중에서 시간복잡도가 낮은 방식인 Two Pointers 에 대해서 알아보려고 합니다. Two Pointers (투 포인터). 투 포인터는 두개의 자료구조를 동시에 순회합니다. 보통 이중 반복문을 활용하여 O(n) 이 n 의 제곱인 방식으로 순회하며 비교하곤합니다. 투 포인터는 이중 반복문을 사용하지 않고 2개의 포인터 변수를 사용합니다. 바로 예시를 통해서 설명을 이어가도록 하겠습니다. def common_elemen..
-
[Python] Programmers 예상 대진표Algorithm 2023. 9. 26. 15:35
- 목차 문제 소개.문제 설명△△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N번의 참가자끼리 게임을 진행합니다. 각 게임에서 이긴 사람은 다음 라운드에 진출할 수 있습니다. 이때, 다음 라운드에 진출할 참가자의 번호는 다시 1번부터 N/2번을 차례대로 배정받습니다. 만약 1번↔2번 끼리 겨루는 게임에서 2번이 승리했다면 다음 라운드에서 1번을 부여받고, 3번↔4번에서 겨루는 게임에서 3번이 승리했다면 다음 라운드에서 2번을 부여받게 됩니다. 게임은 최종 한 명이 남을 때까지 진행됩니다.이때, 처음 라운드에서 A번을 가진 참가자는 경쟁자로 생각하는 B..
-
[Programmers] 전력망을 둘로 나누기 ( Stack, DFS )Algorithm 2023. 9. 26. 11:34
- 목차 문제 설명. n개의 송전탑이 전선을 통해 하나의 트리 형태로 연결되어 있습니다. 당신은 이 전선들 중 하나를 끊어서 현재의 전력망 네트워크를 2개로 분할하려고 합니다. 이때, 두 전력망이 갖게 되는 송전탑의 개수를 최대한 비슷하게 맞추고자 합니다. 송전탑의 개수 n, 그리고 전선 정보 wires가 매개변수로 주어집니다. 전선들 중 하나를 끊어서 송전탑 개수가 가능한 비슷하도록 두 전력망으로 나누었을 때, 두 전력망이 가지고 있는 송전탑 개수의 차이(절대값)를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 2 이상 100 이하인 자연수입니다. wires는 길이가 n-1인 정수형 2차원 배열입니다. wires의 각 원소는 [v1, v2] 2개의 자연수로 이루어져 있으며, 이..
-
[Programmers] 숫자 카드 나누기 (GCD, 유클리드 호제법, Divisor)Algorithm 2023. 9. 22. 21:21
- 목차 문제 설명. https://school.programmers.co.kr/learn/courses/30/lessons/135807 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 철수와 영희는 선생님으로부터 숫자가 하나씩 적힌 카드들을 절반씩 나눠서 가진 후, 다음 두 조건 중 하나를 만족하는 가장 큰 양의 정수 a의 값을 구하려고 합니다. 철수가 가진 카드들에 적힌 모든 숫자를 나눌 수 있고 영희가 가진 카드들에 적힌 모든 숫자들 중 하나도 나눌 수 없는 양의 정수 a 영희가 가진 카드들에 적힌 모든 숫자를 나눌 수 있고, 철수가 가진 카드들에 적..
-
재귀함수 (Recursive Function) 이해하기Algorithm 2023. 9. 21. 17:23
- 목차 관련된 글 Call Stack 이해하기 Call Stack 이해하기 - 목차 * 소개 어떤 프로그램을 사용한다는 의미에 대해서 생각해 볼 필요가 있습니다. 예를 들어, 크롬같은 웹 브라우저를 사용한다거나 Spring 같은 서버를 실행시킨다거나 하는 행동들을 말이 westlife0615.tistory.com 소개. 재귀함수란 어떤 함수가 자기 자신을 호출하는 형태의 함수입니다. 왜 자기 자신의 호출할까요? 재귀함수 형태로 해결할 수 있는 문제들이 있는데요. 대표적인 문제가 - 팩토리얼 구현하기 - 피보나치 수열의 합구하기 - binary tree search 등이 있습니다. 이 모두 공통점이 있는데요. List 를 활용하는 문제라는 점입니다. 필요충분조건은 아니지만 List 자료구조를 사용하는 알..
-
[Algorithm] Selection Sort (선택 정렬) 이해하기Algorithm 2023. 9. 21. 06:33
- 목차 * 소개 선택 정렬 ( selection sort ) 는 가장 일반적이고 직관적인 정렬방법입니다. 배열의 가장 크거나 작은 수를 찾아 정렬되어야 할 위치로 이동시킵니다. 예를 들어, 가장 큰 수를 찾아 배열의 첫번째 위치에 두고, 두번째 큰 수를 찾아 두번째 자리에 둡니다. 이러한 동작을 배열이 정렬될 때 까지 반복합니다. 가장 큰 수를 찾아 알맞게 정렬시키는 방식이 직관적이기 때문에 정렬 알고리즘 중에서 가장 이해하기 쉬운 정렬 방식입니다. 간단하게 시간복잡도를 살펴보겠습니다. 만약 배열의 길이가 n 이라고 한다면, 모든 수들 중에서 가장 크거나 작은 수를 찾는데에 n 의 시간이 소요됩니다. 왜냐하면 모든 값들을 일일이 비교해야하기 때문입니다. 그리고 나머지 모든 값들도 가장 그거나 작은 수를..
-
[Algorithm] bubble sorting 이해하기Algorithm 2023. 9. 20. 17:44
- 목차 * 소개 버블 정렬은 아주 단순한 정렬 알고리즘입니다. 나열된 숫자들을 일일이 비교하는 연산을 수행하는데요. 그래서 시간복잡도는 크지만 직관적으로 이해할 수 있는 정렬 알고리즘입니다. 버블 정렬의 정렬 방식에 대해서 간단히 설명해보겠습니다. 무작위로 나열된 숫자들이 있다고 가정합니다. 이 나열된 숫자들 중 첫번째 수와 그 인접한 수를 한데 묶어 크기를 비교합니다. ( 즉, 첫번째 수와 두번째 수를 비교하는 것입니다. ) 그리고 정렬 방식에 따라 두 수의 위치를 변경합니다. (swap) 오름차순인 경우에는 큰 수가 뒤에 위치하고 내림차순읜 경우에는 작은 수가 뒤에 위치합니다. 그리고 두번째 수와 그 인접한 수를 비교하고 swap 을 합니다. 그리고 세번째 수와 그 인접한 수를 비교하고 swap 을..
-
[Programmers] 이름에 el이 들어가는 동물 찾기 ( SQL , Lower)Algorithm 2023. 9. 19. 19:46
- 목차 문제 설명. ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON_INTAKE VARCHAR(N) FALSE 보호소에 돌..