문제3028--루비 광산

3028: 루비 광산

[만든사람 : jbs34_KHJ]
시간제한 : 1.000 sec  메모리제한 : 128 MiB

문제 설명

루비 광산에 𝑁개의 광물 구역이 일렬로 나열되어 있다. 각 구역에는 채굴 가능한 루비의 개수가 적혀 있다. 당신은 연속된 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 

게시판

작성자제목(댓글)
글이 없습니다.

출처/분류