
1. 문제 풀이 아이디어
- 첫 번째 슬라임부터 차례대로 합쳐 문제를 해결할 수 있다.
- 순서를 바꿔도 동일한 점수가 나오므로 정렬할 필요가 없다.
2. 나의 정답 코드
using (StreamReader sr = new StreamReader(Console.OpenStandardInput()))
using (StreamWriter sw = new StreamWriter(Console.OpenStandardOutput()))
{
sr.ReadLine();
int[] a = Array.ConvertAll(sr.ReadLine().Split(), int.Parse);
int size = a[0];
int score = 0;
for (int i = 1; i < a.Length; i++)
{
score += size * a[i];
size += a[i];
}
sw.WriteLine(score);
}
3. 정리
- 첫 번째 수를 시작 크기로 설정한다.
- 두 번째 수부터 마지막까지 반복하며, 현재 크기와 해당 수를 곱해 점수에 누적한다.
- 곱한 후에는 현재 수를 크기에 더해 다음 연산에 반영한다.
- 모든 연산이 끝나면 최종 점수를 출력한다.
Share article