n = int(input())numbered = 0empty = 0for _ in range(n): line = input() # 한 줄을 통째로: 앞 빈칸은 그대로, 줄 바꿈만 뗀다 if line == "": empty += 1 print() else: numbered += 1 print(f"{numbered}: {line}")print(numbered, empty)
JavaScriptmain.js · 18 行
// 입력을 통째로 읽어 줄 바꿈으로만 나눈다. trim()을 하면 빈 줄과 앞 빈칸이 사라진다const lines = require("fs").readFileSync(0, "utf8").split("\n");const n = Number(lines[0]);let numbered = 0;let empty = 0;const out = [];for (let i = 1; i <= n; i++) { const line = lines[i]; if (line === "") { empty++; out.push(""); } else { numbered++; out.push(`${numbered}: ${line}`); }}out.push(`${numbered} ${empty}`);console.log(out.join("\n"));
TypeScriptmain.ts · 20 行
import { readFileSync } from "node:fs";// 입력을 통째로 읽어 줄 바꿈으로만 나눈다. trim()을 하면 빈 줄과 앞 빈칸이 사라진다const lines: string[] = readFileSync(0, "utf8").split("\n");const n: number = Number(lines[0]);let numbered = 0;let empty = 0;const out: string[] = [];for (let i = 1; i <= n; i++) { const line: string = lines[i]; if (line === "") { empty++; out.push(""); } else { numbered++; out.push(`${numbered}: ${line}`); }}out.push(`${numbered} ${empty}`);console.log(out.join("\n"));
JavaMain.java · 24 行
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int numbered = 0, empty = 0; StringBuilder sb = new StringBuilder(); for (int i = 0; i < n; i++) { String line = br.readLine(); // 빈 줄은 ""로 온다(null은 입력이 끝났을 때만) if (line.isEmpty()) { empty++; } else { numbered++; sb.append(numbered).append(": ").append(line); } sb.append('\n'); } sb.append(numbered).append(' ').append(empty); System.out.println(sb); }}
C#Main.cs · 28 行
using System;using System.Text;class Program{ static void Main() { int n = int.Parse(Console.ReadLine()!); int numbered = 0, empty = 0; var sb = new StringBuilder(); for (int i = 0; i < n; i++) { string line = Console.ReadLine()!; // 빈 줄은 ""로 온다(null은 입력이 끝났을 때만) if (line == "") { empty++; } else { numbered++; sb.Append(numbered).Append(": ").Append(line); } sb.Append('\n'); } sb.Append(numbered).Append(' ').Append(empty); Console.WriteLine(sb); }}
C++main.cpp · 23 行
#include <iostream>#include <string>using namespace std;int main() { string line; // 첫 줄의 수도 getline으로 읽는다: cin >> n과 섞지 않으면 줄이 밀리지 않는다 getline(cin, line); int n = stoi(line); int numbered = 0, empty = 0; for (int i = 0; i < n; i++) { getline(cin, line); // 앞 빈칸까지 한 줄을 통째로, 줄 바꿈은 빼고 if (line.empty()) { empty++; cout << '\n'; } else { numbered++; cout << numbered << ": " << line << '\n'; } } cout << numbered << ' ' << empty << '\n'; return 0;}
Cmain.c · 24 行
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(void) { char buf[128]; /* 첫 줄의 수도 fgets로 읽는다: scanf("%d")와 섞지 않으면 줄이 밀리지 않는다 */ if (!fgets(buf, sizeof buf, stdin)) return 0; int n = atoi(buf); int numbered = 0, empty = 0; for (int i = 0; i < n; i++) { if (!fgets(buf, sizeof buf, stdin)) return 0; buf[strcspn(buf, "\n")] = '\0'; /* fgets가 담아 준 줄 바꿈을 지운다 */ if (buf[0] == '\0') { empty++; printf("\n"); } else { numbered++; printf("%d: %s\n", numbered, buf); } } printf("%d %d\n", numbered, empty); return 0;}