IFP_껐다 켜면 됩니다_ 이것이 코딩 테스트다- 그리디

유재우·2022년 7월 1일
0

IFP-껐다 켜면 됩니다

목록 보기
113/123

큰 수의 법칙

  • 입력
첫 째줄에 N(2 <= N <= 1,000), M(2 <= M <= 1,000), K(2 <= K <= 1,000)의 자연수가 주어지며, 각 자연수는 공백으로 구분한다.
둘째 줄에 N개의 자연수가 주어진다.
각 자연수는 공백으로 구분한다. 단, 각각의 자연수는 1 이상 10,000 이하의 수로 주어진다.
입력으로 주어지는 K는 항상 M보다 작거나 같다.
  • 출력
첫째 줄에 동빈이의 큰 수의 법칙에 따라 더해진 답을 출력한다.
  • 입력 예
5 8 3
2 4 5 4 6
  • 출력 예
46

  • 정답
# N, M, K를 공백을 기준으로 구분하여 입력 받기
n, m, k = map(int, input().split())
# N개의 수를 공백을 기준으로 구분하여 입력 받기
data = list(map(int, input().split()))
data.sort() # 입력 받은 수들 정렬하기
first = data[n - 1] # 가장 큰 수
second = data[n - 2] # 두 번째로 큰 수
# 가장 큰 수가 더해지는 횟수 계산
count = int(m / (k + 1)) * k
count += m % (k + 1)
result = 0
result += (count) * first # 가장 큰 수 더하기
result += (m - count) * second # 두 번째로 큰 수 더하기
print(result) # 최종 답안 출력

문제

  • 입력
첫째 줄에 숫자 카드들이 놓인 행의 개수 N과 열의 개수 M이 공백을 기준으로 하여 각각 자연수로 주어짐
(1 <= N, M <= 100)
둘째 줄부터 N개의 줄에 걸쳐 각 카드에 적힌 숫자가 주어짐 각 숫자는 1이상 10000이하의 자연수
  • 출력
첫째 줄에 게임의 룰에 맞게 선택한 카드에 적힌 숫자를 출력
  • 입력 예 1
3 3
3 1 2
4 1 4
2 2 2
  • 출력 예 2
2
  • 입력 예 2
2 4
7 3 1 8
3 3 3 4
  • 출력 예 2
3

  • 정답
# N, M을 공백을 기준으로 구분하여 입력 받기
n, m = map(int, input().split())
result = 0
# 한 줄씩 입력 받아 확인하기
for i in range(n):
    data = list(map(int, input().split()))
    # 현재 줄에서 '가장 작은 수' 찾기
    min_value = 10001
    for a in data:
        min_value = min(min_value, a)
    # '가장 작은 수'들 중에서 가장 큰 수 찾기
    result = max(result, min_value)
print(result) # 최종 답안 출력

1이 될 때 까지

  • 입력
첫째 줄에 N(2 <= N <= 100,000)과 K(2 <= K <= 100,000)가 공백으로 구분되며 각각 자연수로 주어진다.
이때 입력으로 주어지는 N은 항상 K보다 크거나 같다.
  • 출력
첫째 줄에 N이 1이 될 때까지 1번 혹은 2번의 과정을 수행해야 하는 횟수의 최솟값을 출력한다.
  • 입력 예
    25 5
  • 출력 예
    2

  • 정답
# N, K공백을 기준으로 구분하여 입력 받기
n, k = map(int, input().split())
result = 0
while True:
    # N이 K로 나누어 떨어지는 수가 될 때까지만 1씩 빼기
    target = (n // k) * k
    result += (n - target)
    n = target
    # N이 K보다 작을 때 (더 이상 나눌 수 없을 때) 반복문 탈출
    if n < k:
        break
    # K로 나누기
    result += 1
    n //= k
# 마지막으로 남은 수에 대하여 1씩 빼기
result += (n - 1)
print(result)
profile
끝없이 탐구하는 iOS 개발자 유재우입니다!

0개의 댓글