목록PS/Programmers (55)
DevYoon
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 1️⃣ left 배열에 남은 진도율(100-progress)과 개발속도를 나눈 값을 math.ceil로 올림해서 담아준다. 2️⃣ while문을 통해 1번 인덱스부터 0번 인덱스보다 작으면 pop한 후 temp에 1씩 더해주고, 만약 0번 인덱스가 더 작다면 temp에 1을 더한 값(0번 인덱스까지 포함)을 answer에 삽입해주고, 0번 인..
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 1️⃣ yellow의 약수를 구해 divisor에 담아 주었다. (yellow의 너비와 높이) 2️⃣ 약수 리스트에서 하나씩 뽑아 너비*2+높이*2+4가 brown과 같으면(아래 이미지 참고) answer로 너비와 높이에 각각 2씩 더해 넣어주었다. def solution(brown, yellow): answer = [] divisor = [] ..
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 1️⃣ DFS를 사용해서 풀이했다. 2️⃣ 숫자의 자릿수가 numbers의 자릿수보다 크면 안 되므로, 레벨이 numbers의 자릿수보다 더 커지면 리턴해주었다. 3️⃣ num이 최초의 상태('')가 아니고, DFS의 변수로 check 배열을 두어 check 안에 없는 수만 검사해주었다. 4️⃣ 시간 초과로 답이 안 나와서 소수 검사하..
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)) ..