본문 바로가기

분류 전체보기545

[LeetCode] 181. Employees Earning More Than Their Managers | Self JOIN(셀프조인) 아래의 문제는 LeetCode의 SQL문제 내용이며 코드는 직접 푼 내용입니다. 181. Employees Earning More Than Their Managers 문제상황 및 주어진 테이블 요구사항 다른 매니저보다 더 많이 버는(Salary가 높은) 직원의 이름을 구하라 결과물 해석 하나의 테이블안에서 비교해야하기 때문에 셀프조인이 필요했다. 매니저아이디와 그냥 id가 겹치기에 조인이 가능했다. 결과 select E.Name AS Employee FROM Employee AS E JOIN Employee AS A ON E.ManagerId = A.Id WHERE E.Salary > A.Salary 배운점 셀프조인 : 하나의 테이블을 두개인것처럼 조인이 가능하다 직원-상사 이렇게 비교할떄, 친구관계 등.. 2021. 5. 27.
[Python] 코딩테스트 고득점Kit | 스택큐4 - 주식가격 아래의 문제는 프로그래머스 코딩테스트 고득점 Kit 내용이며 코드는 직접 푼 내용입니다. 주식가격 문제상황 및 요구사항 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. prices의 길이는 2 이상 100,000 이하입니다. 입출력 1초 시점의 ₩1은 끝까지 가격이 떨어지지 않았습니다. 2초 시점의 ₩2은 끝까지 가격이 떨어지지 않았습니다. 3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다. 4초 시점의 ₩2은 1초간 가격이 떨어지지 않았습니다 5초 시점의 .. 2021. 5. 27.
[Python] 코딩테스트 고득점Kit | 스택큐3 - 다리를 지나는 트럭 아래의 문제는 프로그래머스 코딩테스트 고득점 Kit 내용이며 코드는 직접 푼 내용입니다. 다리를 지나는 트럭 문제상황 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다 트럭은 1초에 1만큼 움직이며, 다리 길이는 bridge_length이고 다리는 무게 weight까지 견딥니다. ※ 트럭이 다리에 완전히 오르지 않은 경우, 이 트럭의 무게는 고려하지 않습니다. 예를 들어, 길이가 2이고 10kg 무게를 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다 따라서, 모든 트럭이 다리를 지나려면 최소 8초가 걸립니다. 요구사항 so.. 2021. 5. 27.
[Python] 코딩테스트 고득점Kit | 스택큐2 - 프린터 아래의 문제는 프로그래머스 코딩테스트 고득점 Kit 내용이며 코드는 직접 푼 내용입니다. 프린터 문제상황 인쇄 요청이 들어온 순서대로 인쇄 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발 아래와 같은 방식으로 인쇄 작업을 수행 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 4개의 문서(A, B, C, D)가 순서대로 인쇄 대기목록에 있고 중요도가 2 1 3 2 라면 C D A B 순으로 인쇄하게 됩니다. 내가 인쇄를 요청한 문서가 몇 번째로.. 2021. 5. 27.
[Python] 코딩테스트 고득점Kit | 스택/큐1 - 기능개발 아래의 문제는 프로그래머스 코딩테스트 고득점 Kit 내용이며 코드는 직접 푼 내용입니다. 기능개발 문제상황 기능 개선 작업을 수행 중. 각 기능은 진도가 100%일 때 서비스에 반영 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다 요구사항 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수 제한사항 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. 작업 진도는 100 미만의 자연.. 2021. 5. 27.
음악추천 챗봇2. 음악데이터 파악하기 | Spotify API 이해 서버리스 음악추천 챗봇 서비스를 구현하기 위해 음악데이터가 필요하다. 데이터를 수집하기 위해 Spotify API를 사용하기로 했다. 이번엔 Spotify API의 구조를 알아보고, 어떤 api를 써서 어떤 데이터를 수집할 수 있을지 알아본다. 그리고 마지막에 효율적인 데이터파이프라인 구축을 위해 데이터가 새어나가는 오류를 막기 위한 처리를 수행하였다. API란? Application Programming Interface 즉 두개의 시스템에 서로 상호작용하기 위한 그러니까 데이터를 주고받기 위한 인터페이스다. 흔히 웹사이트는 http 프로토콜을 사용하는 rest api를 기반으로 구축되었다고 볼 수 있다. 웹을 통해 외부 서비스로부터 정보를 가져와서 뿌려주는 방식이기 때문이다. 어떻게 사용하는가? 리소.. 2021. 5. 27.
API 와 OAuth 2.0 참고 https://heung-bae-lee.github.io/2019/12/13/data_engineering_03/ data engineering (API는 무엇인가?!?) REST API의 정의와 예제들API(Application Programming Interface) 두 개의 시스템이 서로 상호 작용하기 위한 인터페이스 데이터를 주고 받는 인터페이스 API라고 하면 보통 REST API를 지칭 웹사이트는 HTTP(S)프 heung-bae-lee.github.io https://www.opentutorials.org/course/2473/16571 2021. 5. 27.
음악추천챗봇1. 카카오챗봇 설정 | 카카오 i 오픈빌더 API 이해 카카오톡에서 사용할 챗봇을만들기 위해서는 아래와 같은 작업을 진행할 것이다. 1. 카카오 채널 생성 2. 카카오에서 제공해주는 카카오i 오픈빌더 사용신청 3. 챗봇기획 - 시나리오 생성 - 블록작성 - 엔터티 설정 4. 봇을 채널에 연결 카카오채널 생성 카카오채널관리자 센터 바로가기 : https://center-pf.kakao.com/ 나는 "오늘의 음악 추천"을 컨셉으로 오.음.추 라는 채널을 생성했다. 카카오 i 오픈빌더? 카카오톡 채널(플러스친구) 프리미어리그봇으로 해당 플러스친구에서 채팅 화면에서 특정 메시지를 입력하면 메시지를 분석해 특정 메시지를 리턴해주는 서비스. 내부 UI는 일반 말풍선만 있는게 아니라 이미지도 있고, 조그만 말풍선 UI도 있다. 나는 뉴스봇이라는 카카오톡 플러스친구를 사.. 2021. 5. 27.
[Python] 코딩테스트 고득점Kit | 완전탐색3-카펫 아래의 문제는 프로그래머스 코딩테스트 고득점 Kit 내용이며 코드는 직접 푼 내용입니다. 카펫 문제상황 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. 요구사항 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 격자의 수 yellow는 1 이상 2,000,000 이하.. 2021. 5. 26.
[Python] 순열(permutations )과 조합(combinations) 딱 정리 product('ABCD', repeat=2) AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD permutations('ABCD', 2) AB AC AD BA BC BD CA CB CD DA DB DC combinations('ABCD', 2) AB AC AD BC BD CD combinations_with_replacement('ABCD', 2) AA AB AC AD BB BC BD CC CD DD 출처 https://docs.python.org/ko/3/library/itertools.html 순열 (permutations) 서로다른 n개에서 r개를 선택할때 순서를 고려하여, 중복없이 뽑을 경우의 수 nPr = n! / (n-r)! 예를 들어, A B C.. 2021. 5. 26.