본문 바로가기
728x90

Programming56

[프로그래머스] 이름에 el이 들어가는 동물 찾기 풀이WHERE NAME LIKE '%EL%'LIKE%문자열%'` 구문으로 특정 문자열 포함 여부를 체크한다.SELECT ANIMAL_ID, NAMEFROM ANIMAL_INSWHERE NAME LIKE '%EL%' AND ANIMAL_TYPE = 'Dog'ORDER BY NAME 2025. 4. 13.
[프로그래머스] 네트워크 기본 아이디어단순한 bfs코드from collections import dequedef solution(n, computers): cnt = 0 visited = set() for i in range(n): if i not in visited: cnt += 1 queue = deque([i]) visited.add(i) while queue: node = queue.popleft() for j in range(n): if computers[node][j] == 1 and j not in visited: .. 2025. 4. 13.
[프로그래머스] 최솟값 구하기 엊그제 푼거와 동일한 원리로 서브쿼리를 구성한다. SELECT DATETIME AS 시간FROM ANIMAL_INSWHERE DATETIME = (SELECT MIN(DATETIME) FROM ANIMAL_INS)최소 시간에 해당하는 '시간'컬럼 값을 가진 행만 필터링한다 2025. 4. 12.
[프로그래머스] 모음사전 아이디어경우의수 다 만들기?def solution(word): dic = {'A': 0, 'E': 1, 'I': 2, 'O': 3, 'U': 4} weights = [781, 156, 31, 6, 1] cnt = 0 for i, chr in enumerate(word): cnt += dic[chr] * weights[i] + 1 return cnt가중치는 "해당 자리 이후로 남은 자리수의 조합 수" 총합그래서 처음부터 글자 하나하나 당 그 자리에서 스킵하는 단어 수가 계산된 것.최종적으로는 각 글자 위치마다 (몇 번째 알파벳인지) × (자리수 가중치) 를 더하면 됨.첫번째자리수: 5^4 + 5^3 + 5^2 + 5^1 + 5^0두번째자리수: 5^3 + 5^2 + 5.. 2025. 4. 12.
[프로그래머스] 전화번호 목록 기본 아이디어트라이 노드순서 정렬 or 양방향 접두사 여부 체크class TrieNode: def __init__(self): self.children = {} self.is_end = Falseclass Trie: def __init__(self): self.root = TrieNode() def insert(self, number): node = self.root for n in number: if n not in node.children: node.children[n] = TrieNode() node = node.children[n] node... 2025. 4. 12.
[프로그래머스] 가격이 제일 비싼 식품의 정보 출력하기 WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT);서브쿼리로 FOOD_PRODUCT 테이블에서 MAX(PRICE)를 구하고그 가격과 일치하는 행을 다 가져옴그런 행이 여러개면? 여러개 가져옴아래 방식은 오답 SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, MAX(PRICE)FROM FOOD_PRODUCT이렇게하면 그룹핑(GROUP BY)안 한 상태로 집계함수만 쓴거라서MAX(PRICE)를 구할 때 테이블 전체에서 가장 큰 값이 나옴PRICE 컬럼은 MAX가 나오는데, 나머지 컬럼들은 무작위값으로 나옴전체 코드SELECT PRODUCT_ID, PRODU.. 2025. 4. 10.
728x90