본문 바로가기
반응형

코딩 테스트44

[카카오][Python] 문자열압축 아래의 문제는 카카오 채용 코딩테스트 내용이며 코드는 직접 푼 내용입니다. 문자열압축 문제상황 예를 들어, ababcdcdababcdcd 에 대한 리턴값을 찾는다고 하면 1개단위로 자르면 ababcdcdababcdcd 2개단위로 자르면 ab ab cd cd ab ab cd cd -> 2ab2cd2ab2cd 3개단위, 4개단위,, 등등 반복하다가 8개단위로 자르면 ababcdcd ababcdcd -> 2ababcdcd 이렇게 압축한 문자열들 중에 문자의 길이가 가장 짧은 문자를 찾는 것이다. 요구사항 압축할 문자열 s가 매개변수로 주어질 때, 위에 설명한 방법으로 1개 이상 단위로 문자열을 잘라 압축하여 표현한 문자열 중 가장 짧은 것의 길이를 return 하도록 solution 함수를 완성해주세요. 제한.. 2021. 7. 8.
[백준][python]1920.수찾기 - 이진탐색 아래의 문제는 '백준'의 알고리즘 문제 내용이며 코드는 직접 푼 내용입니다. 1920.수찾기 문제 및 입출력 입출력예시 나의시도 그냥 단순하게 문자열안에서 검색하도록 in 을 썼다. 그런데 다시보니 자연수의 범위가 10만까지이다. 그래서 시간초과가 났다. 결과 (시간초과) import sys input=sys.stdin.readline n=int(input()) n_list=list(map(int,input().split())) m=int(input()) m_list=list(map(int,input().split())) for m in m_list: if m in n_list: print("1") else: print("0") 결과2 (출력초과) 혹시 몰라서 문자열매칭 패키지인 re를 써서도 탐색해봤다.. 2021. 7. 5.
[python] 문자열매칭. KMP 알고리즘 (백준16916, 백준1786) 단어검색 (문자열매칭) 요구사항 - 워드안에서 Ctrl+F하는 것 처럼, 검색한 단어들이 있는 모든 위치를 전부 알려줘! - 단어사전에 단어가 수만개, 문서길이가 수천개 - 문서는 띄어쓰기가 없거나 마구잡이로 된 상황 - 문서안에 검색할 단어가 여러번 출현해서 문서전체를 훑어야한다. 1. find() 문자열의 위치를 반환하지만, 단어가 문자열내에서 나타나는 첫위치 하나만 리턴한다. 그래서 검색할 단어가 여러번 나타날 경우 처리할 수가 없다 2. 정규식 라이브러리(re) 사용 re.match(), re.finditer() 으로 매칭되는 좌표를 전부 리스트로 반환해준다. 하지만, 데이터의 양이 많아지게 될 경우 시간이 오래걸리는 문제점이 있다. 3. 문자열매칭 알고리즘 위와같은 제한사항으로 인해 문자열매칭 .. 2021. 7. 5.
[백준][python]1436.영화감독 숌 -완전탐색(브루트포스) 아래의 문제는 '백준'의 알고리즘 문제 내용이며 코드는 직접 푼 내용입니다. 1436.영화감독 숌 문제 및 입출력 입출력예시 나의시도 아ㅜ문제를 완전잘못이해했다. 어쩐지 너무 문제가 어이없다고 생각했다. 나는 그냥 1666,2666..5666,6666,76666이렇게 생각한것이다. 근데 포인트는 1666,2666..5666,6660,6661,6662...이렇게 가야했따...!!! 그래서 이렇게 완전 틀렸다.. 절대잘못된코드..이게아닌데.. 더보기 n=int(input()) six="666" for i in range(1,n+1): if i==n: print(str(i)+six) 풀이과정 완전탐색, 그냥 1부터 쭉 무식하게 일일이 하나하나 맞는지 비교해보는 것이다. 그래서 num을 하나씩 더해가면서, wh.. 2021. 6. 10.
[백준][python] 1157.단어공부 -문자열 아래의 문제는 '백준'의 알고리즘 문제 내용이며 코드는 직접 푼 내용입니다. 1157. 단어공부 문제 및 입출력 입출력예시 나의시도 dict를 가지고 이러쿵저러쿵 해보려고 했다. 그래서 {문자열 : 횟수}의 dict를 만들고 여기에서 조건에 맞게 하나하나씩 해결해갔지만 넘 노가다여서 시간초과. 결과 s=input() S=list(s.upper()) dict={} #dict {문자열 : 횟수} for str in S: dict[str]=S.count(str) #print(dict) #가장 큰 count값 가져오기 max=0 for key, value in dict.items(): if max=2: print('?') else: print(result) 풀이과정 is.upper() : 대소문자 상관없이 가장.. 2021. 6. 10.
[HackerRank] Symmetric Pairs | Self Join 아래의 문제는 HankerRank의 SQL문제 내용이며 코드는 직접 푼 내용입니다. Symmetric Pairs 문제상황 및 주어진 테이블 요구사항 symmetric pairs는 x1 = y2 and x2=y1인 쌍을 의미한다. x컬럼 기준으로 오름차순 정렬한 symmetric pairs 쌍을 구하라 결과물 풀이 x1 = y2 and x2=y1인 쌍이라는 말이 이해하기 어려웠다. 그러니까 x컬럼의 값이 y컬럼에도 있고,y컬럼의 값이 x컬럼에 있는 row를 찾는 것이다. 예를 들어 (20,2)이 출력된 이유는 1번쨰row와 2번쨰row를 통해 알 수 있다.(20,21)이 출력된 이유는 3번째row와 6번쨰 row를 통해 알 수 있다. (22,23)이 출력된 이유는 4번쨰row와 5번쨰 row를 통해 알 수.. 2021. 5. 31.
[HankerRank] The PADS | CONCAT, SUBSTR 아래의 문제는 HankerRank의 SQL문제 내용이며 코드는 직접 푼 내용입니다. The PADS 문제상황 및 주어진 테이블 요구사항 2가지 쿼리를 짜라. 1. OCCUPATIONS 테이블에 있는 모든이름과 직업의 첫글자를 뽑아라 단, 직업의 첫글자는 괄호로 묶여있고, 이름은 알파벳 순으로 정렬 예를 들면 : AnActorName(A)ADoctorName(D)AProfessorName(P)ASingerName(S) 2. 각 직업의 발생횟수를 직업을 다음과 같은 형식으로 출력 예를 들면, There are a total of [occupation_count] [occupation]s. ->[occupation_count] : 직업의 발생횟수 단, [occupation]는 소문자 직업 이름입니다. 두 개 .. 2021. 5. 31.
[Python] 코딩테스트 고득점Kit | DFS/BFS1 - 타겟넘버 아래의 문제는 프로그래머스 코딩테스트 고득점 Kit 내용이며 코드는 직접 푼 내용입니다. 타겟넘버 문제상황 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 요구사항 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수 제한사항 주어지는 숫자의 개수는 2개 이상 20개 이하입니다. 각 숫자는.. 2021. 5. 28.
[LeetCode] 197. Rising Temperature | DATEDIFF 아래의 문제는LeetCode의 SQL문제 내용이며 코드는 직접 푼 내용입니다. 197. Rising Temperature 문제상황 및 주어진 테이블 요구사항 어제의 보다 기온이 높은 날의 ID를 구하라 이때, recordDate는 타입이 date임 해석 셀프조인을 하긴하는데, 이전의 날짜와 비교하기 위해 ON으로 키를 비교하지 않고 DATEDIFF를 사용함 결과 SELECT A.id AS 'Id' FROM weather A JOIN weather B ON DATEDIFF(A.recordDate, B.recordDate) = 1 AND A.Temperature > B.Temperature 배운점 DATEDIFFF를 ON에서 사용하는 구나 2021. 5. 27.
[LeetCode] 184. Department Highest Salary | IN 아래의 문제는 LeetCode의 SQL문제 내용이며 코드는 직접 푼 내용입니다. 184. Department Highest Salary 문제상황 및 주어진 테이블 요구사항 각 부서마다 가장 연봉이 높은 직원과 그 연봉을 출력하라. 결과물 해석 아웃풋에 부서이름도 있기 때문에 무조건 조인을 할텐데.. 그리고 그냥 group by로 각 부서마다 가장 연봉이 높은 직원을 뽑아봤다. 하지만 문제는 그룹마다라서 그룹마다 한명의 직원만 뽑힌다. 연봉이 같은 경우를 카운트하지 못하는 문제가 있었다. SELECT DepartmentId, MAX(Salary) FROM Employee Group by DepartmentId 결과 역시나 조인을 했다. 같은 경우를 여러가지를 뽑기 위해서 in 을 썼다. SELECT Dep.. 2021. 5. 27.
728x90

$(document).ready(function() { var $toc = $("#toc"); $toc.toc({content: ".tt_article_useless_p_margin", headings: "h2,h3,h4"}); });