7번 A+B - 7

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

 

입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 

각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)

 

출력

각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다.

 

C++

#include <iostream>
using namespace std;
int main(){
    int t;
    cin.tie(NULL);
    ios_base::sync_with_stdio(false);
    cin >> t;
    for (int i = 0; i < t; i++){
        int a, b;
        cin >> a >> b;
        cout << "Case #" << i + 1 << ": " << a + b << "\n";
    }
    
    return 0;
}

 

C#

using System;
class Program{
    static void Main(string[] args){
        int t = int.Parse(Console.ReadLine());
        Console.SetOut(new StreamWriter(Console.OpenStandardOutput()));
        for (int i = 0; i < t; i++){
            int a, b;
            string input = Console.ReadLine();
            string[] arr = input.Split(' ');
            a = int.Parse(arr[0]);
            b = int.Parse(arr[1]);
            Console.WriteLine($"Case #{i+1}: {a+b}");
        }
        Console.Out.Flush();
    }
}

 

Python

import sys
t = int(input());
for i in range(t):
    input_str = sys.stdin.readline().rstrip()
    arr = input_str.split(' ');
    a = int(arr[0])
    b = int(arr[1])
    print(f"Case #{i+1}: {a+b}")

 

Node.js

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin','utf8').trim().split('\n');
const t = parseInt(input[0], 10);
const output = [];
for (let i = 1; i <= t; i++){
    const[a,b] = input[i].split(' ').map(Number);
    output.push(`Case #${i}: ${a+b}`);
}
console.log(output.join('\n'));

 

readFileSync에서 utf8로 명시적으로 인코딩해주지 않으면 반환되는 데이터가 기본적으로 Buffer 객체이므로 문자열 메서드와 함께 사용할 때 에러가 발생할 수 있다.

 

8번 A+B - 8

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

 

입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 

각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)

 

출력

각 테스트 케이스마다 "Case #x: A + B = C" 형식으로 출력한다. x는 테스트 케이스 번호이고 1부터 시작하며, C는 A+B이다.

 

C++

#include <iostream>
using namespace std;
int main(){
    int t;
    cin.tie(NULL);
    ios_base::sync_with_stdio(false);
    cin >> t;
    for (int i = 0; i < t; i++){
        int a, b;
        cin >> a >> b;
        cout << "Case #" << i + 1 << ": " << a << " + " << b << " = " << a+b << "\n";
    }
    return 0;
}

 

C#

using System;
class Program{
    static void Main(string[] args){
        int t = int.Parse(Console.ReadLine());
        Console.SetOut(new StreamWriter(Console.OpenStandardOutput()));
        for (int i = 0; i < t; i++){
            string input = Console.ReadLine();
            string[] arr = input.Split(' ');
            int a = int.Parse(arr[0]);
            int b = int.Parse(arr[1]);
            Console.WriteLine($"Case #{i+1}: {a} + {b} = {a+b}");
        }
        Console.Out.Flush();
    }
}

 

Python

import sys
t = int(input())
for i in range(t):
    input_str = sys.stdin.readline().rstrip()
    arr = input_str.split()
    a = int(arr[0])
    b = int(arr[1])
    print(f"Case #{i+1}: {a} + {b} = {a+b}")

 

Node.js

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin', 'utf8').trim().split('\n');
const t = parseInt(input[0], 10);
const output = [];
for (let i = 1; i <= t; i++){
    const[a,b] = input[i].split(' ').map(Number);
    output.push(`Case #${i}: ${a} + ${b} = ${a+b}`);
}
console.log(output.join('\n'));

 

7, 8번 문제들은 출력 형식만 다르고 앞에 풀었던 문제와 동일한 방식으로 해결되기 때문에 크게 설명할 내용은 없다.

 

9번 별 찍기 - 1 

문제

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제

 

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

 

출력

첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.

 

C++

string(size_t count, char ch)를 사용해서 count 만큼 문자를 출력하도록 만들어 본다.

#include <iostream>
#include <string>
using namespace std;
int main() {
    int n;
    cin.tie(NULL);
    ios_base::sync_with_stdio(false);
    cin >> n;
    for (int i = 1; i <= n; i++) {
        string stars(i, '*');
        cout << stars << "\n";
    }
    return 0;
}

 

C#

using System;
class Program{
    static void Main(string[] args){
        int n = int.Parse(Console.ReadLine());
        using(StreamWriter writer = new StreamWriter(Console.OpenStandardOutput())){
            for (int i = 1; i <= n; i++){
                string stars = new string('*', i);
                Console.WriteLine(stars);
            }
        }
    }
}

 

C#은 new string(char, count)로 사용이 가능하다. 단일 문자를 반복하는 것이기 때문에 문자열이 아닌 문자를 사용해야 한다는 걸 유의한다.

 

기존 코드를 좀 더 깔끔하게 정리하기 위해서 using을 사용해서 내부에서 동작이 끝나면 자동으로 객체가 해제되도록 한다. 자세히 정리하자면 StreamWriter의 객체의 Dipose 메서드는 내부적으로 Flush를 호출하는데 using을 사용할 경우 객체가 해제될 때 Dispose 메서드가 자동으로 호출되면서 Flush도 처리된다. 따라서 별도로 Flush를 해줄 필요가 없어진다.

 

Python

n = int(input())
for i in range(1, n + 1):
    stars = '*' * i;
    print(stars)

 

파이썬은 문자에 횟수만큼 곱연산을 해서 개수만큼 표기가 가능하다.

 

Node.js

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin','utf8').trim();
const count = parseInt(input);
for (let i = 1; i <= count; i++){
    const stars = '*'.repeat(i);
    console.log(stars);
}

 

자바스크립트에서는 char.repeat으로 문자를 개수만큼 입력할 수 있다.

 

10번 별 찍기 - 2

문제

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제

하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.

 

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

 

출력

첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.

 

9번 문제의 변형이다. N만큼 찍힌 별을 기준으로 이전 별들에게 공백이 추가로 필요하며 이 공백은 n - i 개가 된다.

 

C++

#include <iostream>
#include <string>
using namespace std;
int main(){
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++){
        string space(n - i, ' ');
        string stars(i, '*');
        string result = space + stars;
        cout << result << "\n";
    }
    return 0;
}

 

C#

using System;
class Program{
    static void Main(string[] args){
        int n = int.Parse(Console.ReadLine());
        using(StreamWriter writer = new StreamWriter(Console.OpenStandardOutput())){
            for (int i = 1; i <= n; i++){
                string space = new string(' ', n - i);
                string stars = new string('*', i);
                string result = space + stars;
                Console.WriteLine(result);
            }     
        }
    }
}

 

Python

n = int(input())
for i in range(1, n+1):
    space = ' ' * (n - i);
    stars = '*' * i;
    result = space + stars;
    print(result);

 

Node.js

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin', 'utf8').trim();
const n = parseInt(input);
for (let i = 1; i <= n; i++){
    const space = ' '.repeat(n - i);
    const stars = '*'.repeat(i);
    const result = space + stars;
    console.log(result);
}

 

728x90
반응형

+ Recent posts