프로그래머스 8

[Python/파이썬] 단어 변환 (BFS) (프로그래머스 코딩테스트 고득점 Kit)

from collections import deque def solution(begin, target, words): answer = 0 wordsNum = len(words) visited = [0 for _ in range(wordsNum)] queue = deque() queue.append(begin) while queue: popWord = queue.popleft() if popWord == target: answer = visited[words.index(target)] break for i in range(wordsNum): if visited[i] == 0: # 아직 방문하지 않은 단어만 방문함 check = 0 for j in range(len(popWord)): if popWord[j..

[프로그래머스 SQL 고득점 Kit] 오랜 기간 보호한 동물(2)

SELECT animal_id, name FROM ANIMAL_OUTS as O JOIN ANIMAL_INS as I USING (animal_id, animal_type, name) ORDER BY O.datetime - I.datetime desc LIMIT 2 DATETIME 끼리는 기본적인 연산이 가능하다는 것을 알게 되었다. 그리고 그를 이용한 값을 ORDER BY에서 이용할수도 있다는 것도 알게되었다. JOIN ~ USING을 사용하면 조금더 깔끔하게 작성할 수 있다.

Back-End/SQL 2022.03.04

[프로그래머스 SQL 고득점 Kit] 입양 시각 구하기(2)

SET @hour := -1; -- 변수 선언 SELECT (@hour := @hour + 1) as HOUR, (SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @hour) as COUNT FROM ANIMAL_OUTS WHERE @hour < 23 ORDER BY HOUR asc 쿼리문에서 로컬 변수를 활용하는 문제다. SET을 사용하면 변수를 정의할 수 있다. @가 붙은 것은 변수라고 생각하면 된다. 즉, hour는 초기값이 -1인 변수이다. :=은 비교 연산자 =과 혼동을 피하기 위한 대입 연산자이다. SELECT (@hour := @hour + 1)은 @hour의 값에 1씩 증가시키며 SELECT 문 전체를 실행하게 된다. 이때, 처음 hour..

Back-End/SQL 2022.03.04
반응형