목록PS (95)
DevYoon
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 1️⃣ 수포자별로 찍는 순서를 리스트에 담아 주었고, 각각 for문을 돌려 정답 리스트와 맞는 개수를 cnts 배열에 더해주었다. 2️⃣ Max값을 max(cnts)로 두었고, for문을 돌려 Max와 같으면 answer 리스트에 삽입해주었다! def solution(answers): answer = [] cnts = [0]*3 temp1 = [1,..
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr from copy import deepcopy def solution(tickets): tickets.sort(key=lambda x:(x[0], x[1])) answer = [] check = [0]*len(tickets) flag = 0 def dfs(level, airport, path): nonlocal ti..
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr def solution(begin, target, words): if target not in words: answer = 0 else: def bfs(start, level): q = [] q.append((start, level)) while q: nowwords, level = q.pop(0) if n..
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 1️⃣ check 배열을 활용하여 값 구하기 def solution(n, computers): cnt = 1 check = [0]*n def dfs(now): nonlocal cnt for j in range(n): if computers[now][j] == 1 and check[j] == 0: check[j] = cnt dfs(j) for i..
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr 1️⃣ 더한 경우와 뺀 경우를 나눠서 DFS 돌림 def solution(numbers, target): answer = 0 def dfs(level, sums): global answer if level == len(numbers): if sums == target: answer += 1 return dfs(level+1, ..
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 1️⃣ 0부터 n(논문 개수)까지 첫번째 for문 2️⃣ 두 번째 for문 ➡️ 인용 횟수가 idx이상인 논문의 개수 구하기 3️⃣ 두 번째 for문으로 구한 개수가 idx이상이고 인용 횟수가 idx 미만인 논문의 개수가 idx 이하인 경우, H-Index이므로 answer과 비교 및 갱신 def solution(ci..
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 1️⃣ numbers의 원소가 1000 이하 ➡️ 세 자리수로 비교 2️⃣ numbers를 int로 변환 후 다시 str로 변환하는 이유 ➡️ 000인 경우 0으로 나와야 하기 때문에 def solution(numbers): numbers = list(map(str, numbers)) ..
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr def solution(array, commands): answer = [] for c in commands: lst = sorted(array[c[0]-1:c[1]]) answer.append(lst[c[2]-1]) return answer
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr 1️⃣ DFS를 활용 2️⃣ 더하거나 빼서 target을 만드는 문제이므로, sums 변수에 numbers[level]을 더해줄 때와 빼줄 때로 나누어 돌려주었다. ✏️ 풀이 def solution(numbers, target): answer = 0 def dfs(level, sums): nonlocal answer if le..
1️⃣ 고양이와 개는 몇 마리 있을까 SELECT ANIMAL_TYPE, count(ANIMAL_TYPE) FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE; 2️⃣ 동명 동물 수 찾기 SELECT NAME, COUNT(NAME) FROM ANIMAL_INS WHERE NAME is NOT NULL GROUP BY NAME HAVING COUNT(NAME) > 1 ORDER BY NAME; 3️⃣ 입양 시각 구하기(1) SELECT HOUR(DATETIME) HOUR, COUNT(DATETIME) COUNT FROM ANIMAL_OUTS GROUP BY HOUR(DATETIME) HAVING HOUR >= 9 AND HOUR