문제 설명
루비 광산에 𝑁개의 광물 구역이 일렬로 나열되어 있다. 각 구역에는 채굴 가능한 루비의 개수가 적혀 있다. 당신은 연속된 2개의 구역에서 채굴할 수 있다. 이때, 가장 많은 루비를 채굴했을 때의 총 개수를 구하시오.
이 문제는 반복문을 통해 𝐴[𝑖]와 𝐴[𝑖+1]의 합을 계산하고 계산한 합이 현재까지의 최대 합보다 크다면 최대값을 업데이트하는 방법으로 해결할 수 있다.
다음은 한 광부가 흘리고 간 예시 코드이다.
def f1(a)
msum = 0
for i in 0...(a.length - 1)
csum = a[i] + a[i + 1]
msum = [msum, csum].max
end
return msum
end
n = gets.to_i
a = gets.split.map(&:to_i)
puts f1(a)
자, 이제 직접 코드를 짜보자.
#반복문
입력 설명
첫째 줄에 정수 𝑁이 주어진다. (2 ≤ 𝑁 ≤ 100)
둘째줄에 𝑁개의 정수 𝐴$_1$, 𝐴$_2$, … , 𝐴$_𝑁$이 주어진다. (1 ≤ 𝐴$_𝑖$ ≤ 1,000)
출력 설명
가장 많은 루비를 채굴했을 때의 총 개수를 출력하시오.
입력 예시 Copy
5
10 20 30 40 50
출력 예시 Copy
90