코테 준비/프로그래머스 41

[level 3] 등굣길

https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 핵심포인트 ✅ 행과열이 m,n이 아니라 n,m이라는 것에 유의하면 쉬운 문제! ✅ index를 0에서부터가 아니라 행 기준 [1,n], 열 기준 [1,m] 범위로 설정하면 더 간단함 #dynamic programming def solution(m, n, puddles): memo=[[0 for i in range(m+1)] for j in range(n+1)] memo[1][1]=1 for i i..

[level 3] N으로 표현

https://school.programmers.co.kr/learn/courses/30/lessons/42895 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 핵심포인트 ✅ numbers라는 set()를 먼저 정의한다. DP[j]의 x와 DP[-j-1]의 y를 사칙연산해서 numbers에 add시켜준다. 이때 해당하는 값이 있으면 answer=i로 세팅한후에 return answer해준다. #풀이1 def solution(N, number): answer = -1 DP = [] for i in range(1, 9): numbers = set() numb..

[level 3] 여행경로

https://school.programmers.co.kr/learn/courses/30/lessons/43164?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 핵심포인트 ✅ collection으로부터 defaultdict를 import해줘서 딕셔너리 자료구조를 사용한다. 사용하는 함수는 init_graph()와 dfs() 두개!! ✅ init_graph(): 2차원 배열으로 입력받는 ticket을 x[0],x[1]을 기준으로 sort한다음에 routes에 key(x[0])와 value(x[1])를 매핑시켜준다. ✅ dfs(..

[level 2] 단어변환

https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 핵심포인트 ✅ dfs와 bfs 둘다의 방식으로 문제를 풀수 있는데 dfs에서 if문을 이중으로 한줄로 쓸수 있는 부분이 신기하기도 하고 효율적으로 보였다.. 익숙하지는 않지만 자연스럽게 쓸수 있도록 문제를 많이 풀어봐야겠다. #dfs answer=0 def dfs(begin,target,words,visited): global answer stacks=[begin] while stacks: sta..

[level 2] 네트워크

https://school.programmers.co.kr/learn/courses/30/lessons/43162 def solution(n,computers): answer=0 visited=[0 for i in range(len(computers))] def DFS(i): visited[i]=1 for a in range(n): #i와 a가 연결되어있다고 했을때 a를 아직 방문하지 않은 경우 if computers[i][a] and not visited[a]: DFS(a) for i in range(n): if not visited[i]: DFS(i) answer+=1 return answer from collections import deque def solution(n, computers): an..

[level 2] 타겟넘버

https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #bfs def solution(numbers,target): sup=[0] cnt=0 for n in numbers: temp=[] for i in sup: temp.append(i+n) temp.append(i-n) sup=temp return sup.count(target) #dfs def dfs(numbers, target, idx, values): # idx : 깊이 / values : ..

[SQL_JOIN]

📌상품 별 오프라인 매출 구하기 SELECT P.PRODUCT_CODE,SUM(P.PRICE*O.SALES_AMOUNT) AS SALES FROM PRODUCT P JOIN OFFLINE_SALE O ON O.PRODUCT_ID=P.PRODUCT_ID GROUP BY P.PRODUCT_CODE ORDER BY SALES DESC, PRODUCT_CODE 📌있었는데요 없었습니다 SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_OUTS O LEFT JOIN ANIMAL_INS I ON O.ANIMAL_ID=I.ANIMAL_ID WHERE I.DATETIME > O.DATETIME ORDER BY I.DATETIME; 📌없어진 기록 찾기 SELECT outs.animal_id, outs...

[SQL_IS NULL]

📌NULL 처리하기 SELECT ANIMAL_TYPE,IFNULL(NAME,"No name"),SEX_UPON_INTAKE FROM ANIMAL_INS ORDER BY ANIMAL_ID #다른 풀이 SELECT ANIMAL_TYPE, CASE WHEN NAME IS NULL THEN "No name" ELSE NAME END as NAME, SEX_UPON_INTAKE FROM ANIMAL_INS 📌이름이 있는 동물의 아이디 SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NOT NULL ORDER BY ANIMAL_ID 📌나이 정보가 없는 회원 수 구하기 SELECT COUNT(*) AS USERS FROM USER_INFO WHERE AGE IS NULL 📌경기도에..

[SQL_GROUP BY]

📌성분으로 구분한 아이스크림 총 주문량 SELECT A.INGREDIENT_TYPE, SUM(B.TOTAL_ORDER) AS TOTAL_ORDER FROM ICECREAM_INFO A, FIRST_HALF B WHERE A.FLAVOR=B.FLAVOR GROUP BY A.INGREDIENT_TYPE ORDER BY B.TOTAL_ORDER 📌가격대 별 상품 개수 구하기 SELECT TRUNCATE(PRICE,-4) AS PRICE_GROUP, COUNT(PRODUCT_ID) AS PRODUCTS FROM PRODUCT GROUP BY PRICE_GROUP ORDER BY PRICE_GROUP 📌입양 시각 구하기(1) SELECT HOUR(DATETIME) AS HOUR, COUNT(DATETIME) AS..

[SQL_SUM,MAX,MIN]

📌중복 제거하기 SELECT COUNT(DISTINCT(NAME)) AS count FROM ANIMAL_INS 📌동물 수 구하기 SELECT COUNT(ANIMAL_ID) AS COUNT FROM ANIMAL_INS 📌최솟값 구하기 SELECT DATETIME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1 📌최댓값 구하기 SELECT DATETIME AS '시간' FROM ANIMAL_INS ORDER BY DATETIME DESC LIMIT 1 📌가장 비싼 상품 구하기 SELECT PRICE AS MAX_PRICE FROM PRODUCT ORDER BY PRICE DESC LIMIT 1 📌가격이 제일 비싼 식품의 정보 출력하기 SELECT * FROM FOOD_PRODUC..