[Python] 곱하기 혹은 더하기 문제 각 자리가 숫자 0부터 9로만 이루어진 문자열 S가 주어졌을 때, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인 하여 숫자 사이에 'x' 혹은 '+' 연산자를 넣어 결과적으로 만들어질 수 있는 가장 큰 수 를 구하는 프로그램 작성 +보다 x를 먼저 계산하는 일반적인 방식과는 달리, 모든 연산은 왼쪽에서부터 순서대로 이루어진다고 가정한다 입력 첫째 줄에 여러 개의 숫자로 구성된 하나의 문자열 S가 주어집니다. (1 Algorithm/Greedy 2023.01.09
[Python] 모험가 길드 문제 공포도가 X인 모험가는 반드시 X명 이상으로 구성한 모험가 그룹에 참여해야 여행을 떠날 수 있습니다 N명의 모험가에 대한 정보가 주어졌을 때, 여행을 떠날 수 있는 그룹 수의 최댓값을 구하는 프로그램을 작성하시오 입력 첫째 줄에 모험가의 수 N이 주어집니다 ( 1 Algorithm/Greedy 2023.01.09
[Python] 1이 될 때까지(그리디) 문제 어떠한 수 N이 1이 될 때 까지 다음의 두 과정 중 하나를 반복적으로 선택하여 수행한다 단 두 번째 연산은 N이 K로 나누어 떨어질 때만 선택할 수 있다. 입력 첫째 줄에 N (2 1: n -= 1 cnt += 1 print(cnt) 문제풀이 3 N을 K로 나누어 떨어지는 값으로 만들기 n - target 값 만큼 연산 횟수를 카운트 N이 K보다 작은 경우 나눌 수 없는 경우이므로 while문 탈출 N을 K로 나누고 연산 횟수 카운트 N이 K보다 작아 반복문 탈출한 경우 N - 1 값을 연산횟수에 더하기 연산횟수 출력 코드 n, k = map(int,input().split()) cnt = 0 while True: # N을 K로 나누어 떨어지는 값 만들기 target = (n // k) * k c.. Algorithm/Greedy 2023.01.06
[Python] 숫자 카드 게임(그리디) 문제 숫자가 쓰인 카드들이 N * M으로 놓여있다, N은 행, M은 열의 개수이다 뽑고자 하는 카드가 포함되어 있는 행을 선택한다 그 다음 선택 된 행에 포함되어 있는 카드들 중 가장 숫자가 낮은 카드를 뽑는다 처음에 카드를 골라 낼 행을 선택할 때, 이후에 해당 행에서 가장 숫자가 낮은 카드를 뽑을 것을 고려하여 최종적으로 가장 높은 숫자의 카드를 뽑도록 한다. 입력 첫째 줄에 숫자 카드들이 놓인 행의 개수 N과 열의 개수 M이 공백을 기준으로 주어진다 ( 1 Algorithm/Greedy 2023.01.06
[Python] 큰 수의 법칙(그리디) 문제 다양한 수로 이루어진 배열이 있을 때 주어진 수들을 M번 더하여 가장 큰 수 만들기 배열의 특정한 인덱스(번호)에 해당하는 수가 연속해서 k번을 초과하여 더해질 수 없다 서로 다른 인덱스에 해당하는 수가 같은 경우에도 서로 다른 것으로 간주 입력 첫째줄에 N (2 Algorithm/Greedy 2023.01.04