반응형

DEV 63

[Python] Greedy Algorithm

배수 관계에 놓여있는 동전이 주어졌을 때에는, 항상 큰 동전부터 이용하는 것이 좋음 -> greedy 알고리즘 동전더하기1. coins 를 큰 수가 앞이 오도록 reverse2. one of coins 으로 k 최대 몇 개 쓸 수 있는지 result에 추가 r += k // i 3. 앞 코인이 k 가져갔으니까 k갱신 k % in, k = map(int, input().split())coins = [int(input()) for _ in range(n)]# Please write your code here.result = 0coins.reverse()for i in coins: result += k // i # 해당 동전 (i) 몇 개 쓸 수 있는지 k = k % i# 남은 금액 갱신(기존 k..

DEV 2025.06.17

Lesson 4. Count 배열

연습count_arr = [0] * 7arr = list(map(int, input().split()))for i in arr: count_arr[i] += 1for i in range(1, 7): cnt = count_arr[i] print(f"숫자 {i} - {cnt}번") 1-9 개수 세기 1. cnt_arr 0으로 초기화, 원소 크기 n 입력받고 그 다음 줄에 arr 원소로 숫자 여러 개 입력 받기2. 입력받은 arr 배열에서 하나씩 1부터 9까지 해당하는 수를 cnt_arr에 넣기3. for문 이용해서 1~10까지 cnt_arr[1,2,3,...,9]를 cnt에 넣으면서 cnt 출력cnt_arr = [0] * 10n = int(input())arr = list(map(int, ..

DEV 2025.06.16

[Py] 올바른 괄호

인증사진(2024-11-24)문제괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 답def solution(s): # 열리는 괄호의 개수를 카운트하는 변수 balance = 0 for char in s: if char == '(': balance += 1..

DEV 2024.11.24

[Python] 탐욕법(Greedy) | 큰 수 만들기

인증사진(2024-11-10)문제어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 답def solution(number, k): stack = [] # enumerate를 이용해 숫자와 인덱스를 함께 다룬다. for i, num in enu..

DEV 2024.11.10

[Python] 체육복

인증사진(2024-11-03)문제점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 ..

DEV 2024.11.03

[Python] 카펫

인증사진(2024-10-27)문제Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요.답def solution(brown, yellow): # yellow 타일의 약수 조합을 탐색하여 가능한 가로와 세로 길이를 찾기 for i in range(1, yellow + 1):..

DEV 2024.10.27

[py] 타겟 넘버

인증사진(2024-10-20)문제문제 설명n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다.-1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1-1+1+1 = 3+1+1+1-1+1 = 3+1+1+1+1-1 = 3사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요.제한사항주어지는 숫자의 개수는 2개 이상 20개 이하입니다.각 숫자는 1 이상 50 이하인 자연수입니다.타겟 넘버는 1..

DEV 2024.10.20

[Py] 피로도

인증사진(2024-10-06)문제XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"가 있습니다. "최소 필요 피로도"는 해당 던전을 탐험하기 위해 가지고 있어야 하는 최소한의 피로도를 나타내며, "소모 피로도"는 던전을 탐험한 후 소모되는 피로도를 나타냅니다. 예를 들어 "최소 필요 피로도"가 80, "소모 피로도"가 20인 던전을 탐험하기 위해서는 유저의 현재 남은 피로도는 80 이상 이어야 하며, 던전을 탐험한 후에는 피로도 20이 소모됩니다.이 게임에는 하루에 한 번씩 탐험할 수 있는 던전이 여러개 있는데, 한 유..

DEV 2024.10.06
반응형