ジウとミンソがダーツを一回ずつ交互に投げる。 ジウが先に投げ、次にミンソが投げ、またジウが投げるという順番が最後まで続く。 一行目に、二人が投げた回数を合わせた n が与えられる。 二行目に、投げるたびに得た点数 n 個が投げた順に空白一つずつで区切って与えられる。 ジウが得た点数の合計とミンソが得た点数の合計を、この順に空白一つで区切って一行に出力せよ。 n が 1 のとき、ミンソは一度も投げていないので、ミンソの合計は 0 である。
入力
1 ≤ n ≤ 1,000、0 ≤ 点数 ≤ 10,000(整数、カンマなしの数字だけで与えられる)
n = int(input())a = list(map(int, input().split()))# a[0::2]는 0, 2, 4…번, a[1::2]는 1, 3, 5…번. 빈 목록의 sum은 0이다print(sum(a[0::2]), sum(a[1::2]))
JavaScriptmain.js · 5 行
const [n, ...a] = require("fs").readFileSync(0, "utf8").trim().split(/\s+/).map(Number);// reduce에 시작값 0을 줘야 빈 배열에서도 0이 나온다const jiu = a.filter((x, i) => i % 2 === 0).reduce((s, x) => s + x, 0);const minseo = a.filter((x, i) => i % 2 === 1).reduce((s, x) => s + x, 0);console.log(`${jiu} ${minseo}`);
TypeScriptmain.ts · 6 行
import { readFileSync } from "node:fs";const [n, ...a]: number[] = readFileSync(0, "utf8").trim().split(/\s+/).map(Number);// reduce에 시작값 0을 줘야 빈 배열에서도 0이 나온다const jiu: number = a.filter((x, i) => i % 2 === 0).reduce((s, x) => s + x, 0);const minseo: number = a.filter((x, i) => i % 2 === 1).reduce((s, x) => s + x, 0);console.log(`${jiu} ${minseo}`);
JavaMain.java · 15 行
import java.util.Scanner;import java.util.stream.IntStream;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] a = new int[n]; for (int i = 0; i < n; i++) a[i] = sc.nextInt(); // 번호의 흐름에서 짝수 번호만 골라 그 칸의 값을 더한다. 빈 흐름의 sum()은 0이다 int jiu = IntStream.range(0, n).filter(i -> i % 2 == 0).map(i -> a[i]).sum(); int minseo = IntStream.range(0, n).filter(i -> i % 2 == 1).map(i -> a[i]).sum(); System.out.println(jiu + " " + minseo); }}
C#Main.cs · 15 行
using System;using System.Linq;class Program{ static void Main() { int n = int.Parse(Console.ReadLine()); int[] a = Array.ConvertAll(Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries), int.Parse); // Where는 (값, 번호)를 함께 받을 수 있다. 빈 목록의 Sum()은 0이다 int jiu = a.Where((x, i) => i % 2 == 0).Sum(); int minseo = a.Where((x, i) => i % 2 == 1).Sum(); Console.WriteLine($"{jiu} {minseo}"); }}
C++main.cpp · 14 行
#include <iostream>#include <vector>int main() { int n; std::cin >> n; std::vector<int> a(n); for (int& x : a) std::cin >> x; int jiu = 0, minseo = 0; // 두 칸씩 건너뛰며 더한다 for (int i = 0; i < n; i += 2) jiu += a[i]; for (int i = 1; i < n; i += 2) minseo += a[i]; std::cout << jiu << " " << minseo << "\n";}
Cmain.c · 14 行
#include <stdio.h>int main(void) { int n; scanf("%d", &n); int sum[2] = {0, 0}; /* sum[0]은 지우, sum[1]은 민서 */ for (int i = 0; i < n; i++) { int x; scanf("%d", &x); sum[i % 2] += x; /* 0번째부터 세면 짝수 번째가 지우다 */ } printf("%d %d\n", sum[0], sum[1]); return 0;}
Craykonmain.cray · 17 行
n = コンソール.行読み().数に();a = コンソール.数読み();지우 = 0;민서 = 0;繰り返す (i = 0; i < n; i++){ // 0번부터 세면 짝수 번이 지우의 차례다 もし (i % 2 == 0) { 지우 += a[i]; } でなければ { 민서 += a[i]; }}コンソール.書く(지우 + " " + 민서);