본문 바로가기

Programming/Programmers149

[프로그래머스] 매칭 점수 (Python) https://programmers.co.kr/learn/courses/30/lessons/42893 코딩테스트 연습 - 매칭 점수 매칭 점수 프렌즈 대학교 조교였던 제이지는 허드렛일만 시키는 네오 학과장님의 마수에서 벗어나, 카카오에 입사하게 되었다. 평소에 관심있어하던 검색에 마침 결원이 발생하여, 검색개발팀 programmers.co.kr 고통스러웠다 정규식을 나름 조금씩 해봤다고 생각했는데 전혀 모르는 개념이 많았다. 특히 findall 이랑 search + group 차이를 이번에 깨달았고 \w, \W, \s, \S, + , * [ ] 등 다양한 메타 문자를 배우게 된 계기가 됐다.. 테스트 케이스가 많이 없으면 확실히 어렵다 나의 풀이 import re from collections impor.. 2021. 11. 18.
[프로그래머스] 외벽 점검 (Python) https://programmers.co.kr/learn/courses/30/lessons/60062 코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 "스카피"는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하 programmers.co.kr set과 product를 이용해서 풀려고 했는데 시간초과가 나서 다른 풀이를 이용했다 def solution(n,weak,dist): count = 0 repair_list = [()] dist.sort(reverse = True) for distance in dist: repairs = [] count +=1 for i,st in enumerate(weak):.. 2021. 11. 18.
[프로그래머스] 모두 0으로 만들기 (Python) https://programmers.co.kr/learn/courses/30/lessons/76503 코딩테스트 연습 - 모두 0으로 만들기 각 점에 가중치가 부여된 트리가 주어집니다. 당신은 다음 연산을 통하여, 이 트리의 모든 점들의 가중치를 0으로 만들고자 합니다. 임의의 연결된 두 점을 골라서 한쪽은 1 증가시키고, 다른 한 programmers.co.kr DFS 문제다. queue로 BFS 풀려했는데 잘 풀리지 않았다 DFS 방식이 좀 친숙해지는 계기가 된 것 같다. import sys sys.setrecursionlimit(300000) answer =0 def solution(a,edges): global answer if sum(a) !=0: return -1 graph = [[] for .. 2021. 11. 17.
[프로그래머스] 입양 시각 구하기(2) (MySQL) https://programmers.co.kr/learn/courses/30/lessons/59413 코딩테스트 연습 - 입양 시각 구하기(2) ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 programmers.co.kr 로컬 변수를 선언해야 한다. 몰라서 검색해서 찾았다. (이런 방법이 있었다니) SET @HOUR := -1; SELECT (@HOUR := @HOUR + 1) AS HOUR, (SELECT COUNT(HOUR(DATETIME)) FROM ANIMAL_OUTS W.. 2021. 11. 17.
[프로그래머스] 우유와 요거트가 담긴 장바구니 (MySQL) https://programmers.co.kr/learn/courses/30/lessons/62284 코딩테스트 연습 - 우유와 요거트가 담긴 장바구니 CART_PRODUCTS 테이블은 장바구니에 담긴 상품 정보를 담은 테이블입니다. CART_PRODUCTS 테이블의 구조는 다음과 같으며, ID, CART_ID, NAME, PRICE는 각각 테이블의 아이디, 장바구니의 아이디, 상품 종류, 가 programmers.co.kr SELF JOIN 을 통해 해결했다. 답은 나오긴 했지만 상당히 비효율 적인 것 같아서 다른 풀이를 찾아봤다. SELECT DISTINCT C1.CART_ID FROM CART_PRODUCTS C1 JOIN CART_PRODUCTS C2 ON C1.CART_ID = C2.CART_I.. 2021. 11. 16.
[프로그래머스] 헤비 유저가 소유한 장소 (MySQL) https://programmers.co.kr/learn/courses/30/lessons/77487 코딩테스트 연습 - 헤비 유저가 소유한 장소 PLACES 테이블은 공간 임대 서비스에 등록된 공간의 정보를 담은 테이블입니다. PLACES 테이블의 구조는 다음과 같으며 ID, NAME, HOST_ID는 각각 공간의 아이디, 이름, 공간을 소유한 유저의 아이디를 programmers.co.kr 서브쿼리를 활용한다. IN , EXISTS EXISTS가 좀 더 효율적 IN 사용 SELECT ID, NAME, HOST_ID FROM PLACES WHERE HOST_ID IN (SELECT HOST_ID FROM PLACES GROUP BY HOST_ID HAVING COUNT(HOST_ID) >=2) ORDE.. 2021. 11. 16.
[프로그래머스] DATETIME에서 DATE로 형 변환 (MySQL) https://programmers.co.kr/learn/courses/30/lessons/59414 코딩테스트 연습 - DATETIME에서 DATE로 형 변환 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr DATE_FORMAT을 통해 자유자제로 변환 가능 SELECT ANIMAL_ID, NAME, DATE_FORMAT(datetime, '%Y-%m-%d') AS 날짜 FROM ANIMAL_INS ORDER BY ANIMAL_ID 2021. 11. 16.
[프로그래머스] 오랜 기간 보호한 동물 (2) (MySQL) https://programmers.co.kr/learn/courses/30/lessons/59411 코딩테스트 연습 - 오랜 기간 보호한 동물(2) ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 될까..? 했는데 됐다. SELECT INS.ANIMAL_ID, INS.NAME FROM ANIMAL_INS INS JOIN ANIMAL_OUTS OUTS ON INS.ANIMAL_ID = OUTS.ANIMAL_ID ORDER BY (OUTS.. 2021. 11. 16.
[프로그래머스] 중성화 여부 파악하기 (MySQL) https://programmers.co.kr/learn/courses/30/lessons/59409 코딩테스트 연습 - 중성화 여부 파악하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr CASE WHEN 구문을 통해 생성한다. SELECT ANIMAL_ID, NAME, CASE WHEN SEX_UPON_INTAKE LIKE 'Intact%' THEN 'X' ELSE 'O' END AS 중성화 FROM ANIMAL_INS ORDER .. 2021. 11. 16.
[프로그래머스] 이름에 el이 들어가는 동물 찾기 (MySQL) https://programmers.co.kr/learn/courses/30/lessons/59047 코딩테스트 연습 - 이름에 el이 들어가는 동물 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr UPPER or LOWER를 사용하면 된다. SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE ANIMAL_TYPE = 'Dog' and UPPER(NAME) LIKE UPPER('%EL%') order b.. 2021. 11. 16.
[프로그래머스] 루시와 엘라 찾기 (MySQL) https://programmers.co.kr/learn/courses/30/lessons/59046 코딩테스트 연습 - 루시와 엘라 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr IN을 활용해서 풀었다. SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty') O.. 2021. 11. 16.
[프로그래머스] 보호소에서 중성화한 동물 (MySQL) https://programmers.co.kr/learn/courses/30/lessons/59045 코딩테스트 연습 - 보호소에서 중성화한 동물 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr INNER JOIN과 LIKE를 이용해서 풀었다. SELECT OUTS.ANIMAL_ID, OUTS.ANIMAL_TYPE, OUTS.NAME FROM ANIMAL_OUTS OUTS JOIN ANIMAL_INS INS ON OUTS.ANIMAL_I.. 2021. 11. 16.
[프로그래머스] 오랜 기간 보호한 동물 (1) (MySQL) https://programmers.co.kr/learn/courses/30/lessons/59044 코딩테스트 연습 - 오랜 기간 보호한 동물(1) ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 보호소에 있는데 입양을 못 간 동물이니깐 LEFT OUTER JOIN 후 조건을 걸어주자 SELECT INS.NAME, INS.DATETIME FROM ANIMAL_INS INS LEFT OUTER JOIN ANIMAL_OUTS OUTS ON.. 2021. 11. 16.
[프로그래머스] 있었는데요 없었습니다 (MySQL) https://programmers.co.kr/learn/courses/30/lessons/59043 코딩테스트 연습 - 있었는데요 없었습니다 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr INNER JOIN 과 WHERE 조건을 이용해서 풀었다. SELECT INS.ANIMAL_ID, INS.NAME FROM ANIMAL_INS INS JOIN ANIMAL_OUTS OUTS ON INS.ANIMAL_ID = OUTS.ANIMAL_ID.. 2021. 11. 16.
[프로그래머스] 없어진 기록 찾기 (MySQL) https://programmers.co.kr/learn/courses/30/lessons/59042 코딩테스트 연습 - 없어진 기록 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 차집합 개념이다. 서브쿼리와 NOT IN 을 활용해서 풀면 된다. SELECT ANIMAL_ID, NAME FROM ANIMAL_OUTS WHERE ANIMAL_ID NOT IN ( SELECT DISTINCT ANIMAL_ID FROM ANIMAL_I.. 2021. 11. 16.