https://school.programmers.co.kr/learn/courses/30/lessons/176963 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(name, yearning, photo): answer = [] for p in photo: sum = 0 for j in range(len(p)): if p[j] in name: index = name.index(p[j]) sum += yearning[index] answer.append(sum) return answer
def solution(keymap, targets): answer = [] for target in targets: times = 0 for alpha in target: time = 101 flag = False for key in keymap: if alpha in key: time = min(key.index(alpha)+1, time) flag = True if flag == False: times = -1 break times += time answer.append(times) return answer
프로그래머스 과일장수 🪄 코드 def solution(k, m, score): # 과일 장수가 얻을 수 최대 이익 answer = 0 # 사과의 점수 역순 정렬 score = sorted(score, reverse=True) for i in range(0, len(score), m): # range(start, end, step) box = score[i:i+m] # box의 크기 확인 후 상자의 가격 계산 if len(box) == m: answer += min(box) * m return answer
😈 문제 설명 https://www.acmicpc.net/problem/11722 🔐 문제 풀이 1️⃣ 부분 수열의 최소 길이는 1 이므로 dp 배열을 수열의 크기 만큼 1로 초기화한다. dp = [1] * n 2️⃣ 수열에 담긴 숫자를 하나씩 꺼내 앞에 있는 숫자들을 모두 탐색하게 한다. 그러다가 큰 수를 발견하게 된다면 부분 수열이 존재하는 것 이므로 dp 배열의 값을 업데이트한다. (앞에 있는 수의 수열 길이 + 1과 현재 dp 값을 비교한 뒤 큰 값으로 업데이트) for i in range(1, n): for j in range(i): if data[j] > data[i]: dp[i] = max(dp[j] + 1, dp[i]) 3️⃣ dp 배열에서 가장 큰 값이 가장 긴 감소하는 부분 수열의 길이..