숫자 카드 게임은 여러개의 숫자 카드 중에서 가장 높은 숫자가 쓰인 카드 한 장을 뽑는 게임.
3 1 2 이렇게 카드가 있으면 최종적으로 세번째행에서
4 1 4 2를 뽑는게 제일큰 값이다.
2 2 2
n, m = map(int, input().split())
result =0
for i in range(n):
data = list(map(int,input().split()))
min_value = min(data)
result = max(result,min_value)
print(result)
처음 입력값 2개를 행렬 값을 받아서 한줄씩 열의 최솟값을 result에 설정하고 다음줄이 더 크다면 result를 바꿔준다.
어떤한 수 N이 1이될 때까지 다음의 두 과정 중 하나를 반복적으로 선택하여 수행하려고 한다. 단 두번째 연산은 N이 K로 나누어 떨어질때만 선택할 수 있다.
1. N에서 1을 뺀다.
2. N을 K로 나눈다.
N = 17 K = 4라고 하면 1,2,2, 하면 1이되므로 3이 최소횟수이다.
과정의 최소 횟수를 구하시오
2<= N <=100000 k는 N보다 같거나 크다
n, k = map(int, input().split())
result = 0
while n != 1:
if n % k != 0:
n -= 1
result += 1
else:
n = n / k
result += 1
print(result)
2개의 문자열을 받아서 k로 나눈 나머지가 0이아니면 -1을 해주고 나머지가 0이면 나누어 준다. 나누어 주는게 무조건(2일땐 아니지만) 더 빨리 1을 도출하기 때문
n, k = map(int, input().split())
result = 0
while True:
target = (n // k) * k
result += (n - target)
n = target
if n < k:
break
result += 1
n //= k
result += (n-1)
print(result)
위와 같은 방식으로 N의 범위가 엄청나게 클때 빠르게 작동시키는 코드이다. N이 K의 배수가 되도록 1씩 계속 빼는게 아니라 계산해서 한번에 빼는것이다.