거스름돈 유형의 문제이다. 3개의 버튼으로 T초를 맞출 수 없으면 음수 -1을 출력하는데 이 경우는 A,B,C가 모두 C의 배수이므로 T초를 C로 나누었을 때, 나누어 떨어지지 않는다면 3개의 버튼으로 T초를 맞출 수 없다는 것을 의미한다.
time = int(input())
array = [300, 60, 10]
count = [ ]
for button in array:
if time % 10 != 0:
count.append(-1)
break
else:
count.append(time // button)
time %= button
for lst in count:
print(lst , end = ' ')
배열과 for
문을 통해 문제를 해결했는데, 시간의 종류가 3가지뿐이라 배열을 활용하지 않아도 간단하게 작성할 수 있을 것 같았다.
수정한 코드
time = int(input())
if time % 10 != 0:
print(-1)
else:
a = b = c = n = 0
a = time // 300
n = time % 300
b = n // 60
n = n % 60
c = n // 10
n = n % 10
print(a, b, c)
최솟값은 A,B에 5,6이 존재할 때 모두 5로 볼 경우이고 최댓값은 모두 6으로 볼 경우이다. 문자열로 A,B를 받아내고 replace()
함수를 통해 5,6을 바꿔준 후, int
형으로 두 수의 합을 계산하여 문제를 해결하였다.
a, b = input().split()
min_sum = int(a.replace('6','5')) + int(b.replace('6','5'))
max_sum = int(a.replace('5','6')) + int(b.replace('5','6'))
print(min_sum,max_sum)
거스름돈 유형의 문제이다. 동전의 종류가 4가지여서 10162번 문제에서 수정한 코드와 같은 방법으로 문제를 해결하였다.
case = int(input())
for i in range(case):
num = int(input())
q = num // 25
c = num % 25
d = c // 10
c = c % 10
n = c // 5
c = c % 5
p = c // 1
print(q,d,n,p)
여러가지 경우의 수를 생각해보았을 때 커플석이 없을 경우에 컵 홀더의 개수는 (사람의 수 + 1)이다. 커플석이 n쌍일 때, 컵 홀더는 n개씩 없어지게 되므로 (사람의 수 + 1 - n)이 컵 홀더의 개수가 된다.
count = int(input())
seat = input()
couple = seat.count('LL')
if couple <= 1:
print(count)
else:
print(count - couple + 1)
최댓값을 구하는 문제와 유사하다고 생각했다. 봉우리의 높이들을 리스트에 넣고 봉우리의 높이를 비교해가면서 처치하는 숫자를 늘려나가면 된다. 이때, 현재 봉우리의 높이보다 높은 봉우리를 만났을 경우는 처치하는 숫자를 0으로 초기화해주고 처치할 수 있는 최대 숫자와 비교해주는 과정을 거치면 된다.
mountain = int(input())
height = list(map(int, input().split()))
count = 0
max_count = 0
max_mountain = 0
for i in height:
if i > max_mountain:
max_mountain = i
count = 0
else:
count += 1
max_count = max(max_count, count)
print(max_count)