본문 바로가기
반응형

코딩 테스트44

[SQL고급] rank함수 - 랭킹(순위) 구하기 (MySQL 8버전) 예를 들어 id, amount(금액)에 관련된 데이터가 있다고 치자. 이때 금액이 많은 순대로 순위를 매기고 싶다면? 여러가지 방법이 있다. 특히 mysql8 버전이라면 rank함수를 이용할 수 있으니 이걸 기억하자! 1. 사용자정의 변수 이용 SELECT id, amount,(@rank := @rank + 1 ) AS ranking FROM ex_card AS a,(select @rank := 0 ) AS b ORDER BY a.amount DESC; 사실상 순위를 직접 뽑아낸다기보다 rownum을 계산해서 그걸 순위인것처럼 사용하는걸로 볼 수 있다. 그래서 보통 변수명을 rownum으로 사용하는 경우가 많다. 그리고 하나의 row가 생길때마다 랭킹이 하나씩 더해지는 방식이기 때문에 정렬을 하고 같은 .. 2021. 8. 14.
[카카오][Python] 순위검색 - combination 그리고 이진탐색 아래의 문제는 카카오 채용 코딩테스트 내용이며 코드는 직접 푼 내용입니다. 순위검색 https://programmers.co.kr/learn/courses/30/lessons/72412 0: start=0 end=len(scoreList) while start= query_score: end = mid else: start = mid+1 answer.append(len(scoreList)-start) #3-1.쿼리에 해당하는 score가 없을때 else: answer.append(0) return answer 결과 내가 나름 이해하면서 작성한 주석까지 포함한다. from collections import defaultdic.. 2021. 8. 13.
[Python] 코딩테스트 고득점Kit | 해시4-베스트앨범 cmp_to_key 정렬 아래의 문제는 프로그래머스 코딩테스트 고득점 Kit 내용이며 코드는 직접 푼 내용입니다. 베스트앨범 문제상황 요구사항 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생된 횟수입니다. genres와 plays의 길이는 같으며, 이는 1 이상 10,000 이하입니다. 장르 종류는 100개 미만입니다. 장르에 속한 곡이 하나라면, 하나의 곡만 선택합니다. 모든 장르는 재생된 횟수가 다릅니다. 입출력 풀이과정 이전에 풀이방법과 거의 비.. 2021. 8. 4.
[Python] 코딩테스트 고득점Kit | 해시4-베스트앨범 (dict정렬) 아래의 문제는 프로그래머스 코딩테스트 고득점 Kit 내용이며 코드는 직접 푼 내용입니다. 베스트앨범 문제상황 요구사항 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생된 횟수입니다. genres와 plays의 길이는 같으며, 이는 1 이상 10,000 이하입니다. 장르 종류는 100개 미만입니다. 장르에 속한 곡이 하나라면, 하나의 곡만 선택합니다. 모든 장르는 재생된 횟수가 다릅니다. 입출력 풀이과정 dict를 두개만들었다. .. 2021. 7. 31.
[LeetCode] 438. Find All Anagrams in a String -슬라이딩 윈도우 아래의 문제는LeetCode의 문제 내용이며 코드는 직접 푼 내용입니다. [LeetCode] 438. Find All Anagrams in a String 요구사항 Given two strings s and p, return an array of all the start indices of p's anagrams in s. You may return the answer in any order. 문자열2개(c,p)가 주어질때 p의 애너그램이 c의 어디위치에 나오는지 리턴 입출력예시 접근법 문자열을 애너그램단위만큼씩 짤라서 하나하나 애너그램인지까지 비교할 수도 있을 것이다. 하지만, 이번엔 슬라이딩 윈도우를 적용해보았다 결과 from collections import Counter def findAnagra.. 2021. 7. 29.
[백준][파이썬]21921.블로그 -슬라이딩윈도우 아래의 문제는 '백준'의 알고리즘 문제 내용이며 코드는 직접 푼 내용입니다. 21921. 블로그 문제 및 입출력 입출력예시 나의시도 앞에 부분합(구간합)알고리즘처럼 연속적인 x일동안 방문자수들의 합을 계산해두려고 했다. 연속적인 x일동안 방문자수는 i부터 i+x만큼 split하고 sum하면 되지 않을까 했다... 대신 그 i는 끝까지 안돌고 x뺀만큼 하고 인덱스니까 +1해서 거기까지..? 더보기 import sys input=sys.stdin.readline N,X=map(int,input().split()) data=list(map(int,input().split())) #구간합 알고리즘 변형 prefix_sum=[] #접두사합 배열 #접두사합 배열 계산 (X단위로 부분합저장) for i in rang.. 2021. 7. 29.
[백준][파이썬]11659.구간합구하기4 - 구간합(접두사합) 아래의 문제는 '백준'의 알고리즘 문제 내용이며 코드는 직접 푼 내용입니다. 11659.구간합구하기4 문제 및 입출력 입출력예시 나의시도 구간합알고리즘 적용 접두사합 배열을 만들어서, 부분합을 미리 계산해 두는 것이다. 그러면 i번째부터 j번째 수까지 합은 그 부분합배열[j] - 부분합배열[i-1]이 된다. import sys input=sys.stdin.readline n,m=map(int,input().split()) data=list(map(int,input().split())) #구간합 알고리즘 적용 sum_value=0 #부분합계산 prefix_sum=[0] #접두사합 배열 #접두사합 배열 계산 for i in data: sum_value+=i #부분합 prefix_sum.append(sum_v.. 2021. 7. 28.
[카카오][Python]메뉴리뉴얼 아래의 문제는 카카오 채용 코딩테스트 내용이며 코드는 직접 푼 내용입니다. 메뉴리뉴얼 문제상황 요구사항 각 손님들이 주문한 단품메뉴들이 문자열 형식으로 담긴 배열 orders, "스카피"가 추가하고 싶어하는 코스요리를 구성하는 단품메뉴들의 갯수가 담긴 배열 course가 매개변수로 주어질 때, "스카피"가 새로 추가하게 될 코스요리의 메뉴 구성을 문자열 형태로 배열에 담아 return 하도록 solution 함수를 완성해 주세요. 제한사항 orders 배열의 크기는 2 이상 20 이하입니다. orders 배열의 각 원소는 크기가 2 이상 10 이하인 문자열입니다. 각 문자열은 알파벳 대문자로만 이루어져 있습니다. 각 문자열에는 같은 알파벳이 중복해서 들어있지 않습니다. course 배열의 크기는 1 이상.. 2021. 7. 9.
[카카오][Python] 키패드 누르기 아래의 문제는 카카오 채용 코딩테스트 내용이며 코드는 직접 푼 내용입니다. 키패드누르기 문제상황 요구사항 순서대로 누를 번호가 담긴 배열 numbers, 왼손잡이인지 오른손잡이인 지를 나타내는 문자열 hand가 매개변수로 주어질 때, 각 번호를 누른 엄지손가락이 왼손인 지 오른손인 지를 나타내는 연속된 문자열 형태로 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers 배열의 크기는 1 이상 1,000 이하입니다. numbers 배열 원소의 값은 0 이상 9 이하인 정수입니다. hand는 "left" 또는 "right" 입니다. "left"는 왼손잡이, "right"는 오른손잡이를 의미합니다. 왼손 엄지손가락을 사용한 경우는 L, 오른손 엄지손가락을 사용한 경우는 R을 순서대로.. 2021. 7. 9.
[카카오][Python] 숫자문자열과 영단어 아래의 문제는 프로그래머스에서 푼 2021 카카오 채용 코딩테스트 내용이며 코드는 직접 푼 내용입니다. 숫자문자열과 영단어 문제상황 요구사항 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ s의 길이 ≤ 50 s가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니다. return 값이 1 이상 2,000,000,000 이하의 정수가 되는 올바른 입력만 s로 주어집니다. 입출력 풀이과정 1. 영단어->숫자로 매칭시키기 위한 dict이 필요하다 2. 매칭된 결과가 필요하다. 문자열로, 이어붙이면 되겠다 3. 숫자면 읽은 그대로 최종문.. 2021. 7. 9.
728x90