{ }codelper
이어서 출력P0373

가산점을 더한 점수를 쉼표로 잇기

모둠 학생 n명의 점수에 가산점 b를 똑같이 더해 주려고 한다. 첫 줄에 n과 b가 빈칸 하나로 띄워 주어진다. 둘째 줄에 점수 n개가 빈칸 하나로 띄워 주어진다. 가산점을 더한 점수 n개를 주어진 차례대로 한 줄에 출력하라. 점수와 점수 사이에는 쉼표 하나와 빈칸 하나(", ")를 넣는다. 첫 점수 앞과 마지막 점수 뒤에는 아무것도 붙이지 않는다. 더한 점수가 100을 넘어도 그대로 출력한다.

입력
1 ≤ n ≤ 100, 1 ≤ b ≤ 100, 0 ≤ 점수 ≤ 100(모두 정수)
출력
한 줄에 가산점을 더한 점수 n개를 ", "로 이어서
예시 1 · stdin
3 5
70 85 90
stdout
75, 90, 95
예시 2 · stdin
1 10
100
stdout
110
main.py
입력(stdin)

실행하면 이 줄들이 차례로 input()·표준 입력으로 들어가요(실행 중에 묻지 않아요).

$ 준비됐어요

코드를 입력해 풀려면 PC에서 열어 주세요. 모바일에서는 문제와 풀이를 볼 수 있어요.

다른 언어로는?언어별 풀이 보기 · 8개 언어 풀이

값 여러 개를 사이에만 무언가를 넣어 한 줄로 잇는 도구가 언어마다 달라요.
Python ", ".join(…), JS·TS 배열.join(", "), Java StringJoiner, C# string.Join(", ", 배열), 크레이콘 목록.잇기(", ").
C와 C++ 풀이는 "첫 점수가 아니면 앞에 , "를 직접 써요.
함정 하나: 점수마다 뒤에 , 를 쓰면 마지막 점수 뒤에도 쉼표가 남아요(예시 1이 75, 90, 95,).
함정 둘: 목록을 그대로 출력하면 언어마다 제멋대로의 모양이 나와요.
Python print(목록)과 Java Arrays.toString(배열)은 [75, 90, 95]처럼 대괄호를 붙이고, JS join()은 사이 문자열을 안 주면 빈칸 없이 75,90,95로 잇고, 크레이콘 콘솔.쓰기(목록)은 빈칸으로만 이어 75 90 95가 돼요.
함정 셋: Python의 join은 문자열만 이어 줘요.
수를 그대로 넘기면 TypeError로 멈추니 str(x + b)로 바꿔서 넘겨요.
JS·TS join, C# string.Join, 크레이콘 잇기는 수를 알아서 문자열로 바꿔 줘요.
함정 넷: JS에서 점수를 Number로 바꾸지 않으면 "70" + 5가 덧셈이 아니라 이어 붙이기라서 705가 돼요(예시 1이 705, 855, 905).

Pythonmain.py · 4 줄
n, b = map(int, input().split())scores = list(map(int, input().split()))# join은 문자열만 이어 주므로 수를 str로 바꿔서 넘긴다print(", ".join(str(x + b) for x in scores))
JavaScriptmain.js · 5 줄
const lines = require("fs").readFileSync(0, "utf8").split("\n");const [n, b] = lines[0].trim().split(/\s+/).map(Number);const scores = lines[1].trim().split(/\s+/).map(Number);// join(", ")은 사이에만 ", "을 넣는다. 수는 알아서 문자열로 바뀐다console.log(scores.map((x) => x + b).join(", "));
TypeScriptmain.ts · 6 줄
import { readFileSync } from "node:fs";const lines: string[] = readFileSync(0, "utf8").split("\n");const [n, b]: number[] = lines[0].trim().split(/\s+/).map(Number);const scores: number[] = lines[1].trim().split(/\s+/).map(Number);// join(", ")은 사이에만 ", "을 넣는다. 수는 알아서 문자열로 바뀐다console.log(scores.map((x: number) => x + b).join(", "));
JavaMain.java · 16 줄
import java.util.Scanner;import java.util.StringJoiner; public class Main {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        int n = sc.nextInt(), b = sc.nextInt();        // StringJoiner는 사이에만 ", "을 넣는다. 문자열만 받으므로 수를 바꿔서 넣는다        StringJoiner line = new StringJoiner(", ");        for (int i = 0; i < n; i++) {            int x = sc.nextInt();            line.add(String.valueOf(x + b));        }        System.out.println(line);    }}
C#Main.cs · 18 줄
using System; class Program{    static void Main()    {        string[] head = Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries);        int n = int.Parse(head[0]), b = int.Parse(head[1]);        string[] parts = Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries);        int[] result = new int[n];        for (int i = 0; i < n; i++)        {            result[i] = int.Parse(parts[i]) + b;        }        // string.Join은 사이에만 ", "을 넣는다. 수 배열도 그대로 받는다        Console.WriteLine(string.Join(", ", result));    }}
C++main.cpp · 14 줄
#include <iostream> int main() {    int n, b;    std::cin >> n >> b;    for (int i = 0; i < n; i++) {        int x;        std::cin >> x;        // 첫 점수가 아닐 때만 앞에 ", "을 쓴다        if (i > 0) std::cout << ", ";        std::cout << x + b;    }    std::cout << "\n";}
Cmain.c · 15 줄
#include <stdio.h> int main(void) {    int n, b;    if (scanf("%d %d", &n, &b) != 2) return 0;    for (int i = 0; i < n; i++) {        int x;        if (scanf("%d", &x) != 1) return 0;        /* C에는 이어 주는 도구가 없다: 첫 점수가 아닐 때만 앞에 ", "을 쓴다 */        if (i > 0) printf(", ");        printf("%d", x + b);    }    printf("\n");    return 0;}
Craykonmain.cray · 11 줄
head = 콘솔.수들읽기();n = head[0];b = head[1];scores = 콘솔.수들읽기();result = [];각각 (x 에서 scores){    result.넣기(x + b);}// 잇기(", ")는 사이에만 ", "을 넣는다콘솔.쓰기(result.잇기(", "));