3번 윤년

문제

연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.

 

입력

첫째 줄에 연도가 주어진다. 연도는 1보다 크거나 같고, 4000보다 작거나 같은 자연수이다.

 

출력

첫째 줄에 윤년이면 1, 아니면 0을 출력한다.

 

연도가 4의 배수 && (100의 배수가 아닐 때  || 400의 배수일 때)

 

C++

#include <iostream>
using namespace std;
int main(){
    int input;
    cin >> input;
    char result;
    if ((input % 4) == 0 && ((input % 100) != 0 || (input % 400) == 0))
        result = '1';
    else
        result = '0';
    cout << result;
    return 0;
}

 

배수인지 확인할 때는 나머지가 0인지를 확인하면 된다.

 

C#

using System;
class Program{
    static void Main(string[] args){
        int input = int.Parse(Console.ReadLine());
        char result;
        if ((input % 4) == 0 && ((input % 100) != 0 || (input % 400) == 0))
            result = '1';
        else
            result = '0';
        Console.WriteLine(result);
    }
}

 

Python

inputData = int(input());
if inputData % 4 == 0 and (inputData % 100 != 0 or inputData % 400 == 0):
    result = '1';
else:
    result = '0';
print(result);

 

파이썬의 논리 연산자는 and, or, not으로 작성한다.

 

Node.js

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim();
const year = parseInt(input, 10);
let result;
if ((input % 4) == 0 && ((input % 100) != 0 || (input % 400) == 0))
    result = '1';
else
    result = '0';
console.log(result);

 

728x90
반응형

2번 시험 성적

문제

시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.

 

입력

첫째 줄에 시험 점수가 주어진다. 시험 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

 

출력

시험 성적을 출력한다.

 

C++

#include <iostream>
using namespace std;
int main(){
    int score;
    cin >> score;
    char result;
    if (score >= 90) {
        result = 'A';
    }
    else if (score >= 80){
        result = 'B';
    }
    else if (score >= 70){
        result = 'C';
    }
    else if (score >= 60){
        result = 'D';
    }
    else {
        result = 'F';
    }
    cout << result;
    return 0;
}

 

C#

using System;
class Program{
    static void Main(string[] args){
        int score = int.Parse(Console.ReadLine());
        char result;
        if (score >= 90)
            result = 'A';
        else if (score >= 80)
            result = 'B';
        else if (score >= 70)
            result = 'C';
        else if (score >= 60)
            result = 'D';
        else
            result = 'F';
        Console.WriteLine(result);
    }
}

 

Python

score = int(input());
if score >= 90: 
    result = 'A'
elif score >= 80:
    result = 'B'
elif score >= 70:
    result = 'C'
elif score >= 60:
    result = 'D'
else:
    result = 'F'
print(result);

 

파이썬에서 조건문을 사용할 때는 들여 쓰기에 주의해야 한다.

 

Node.js

const fs = require('fs');
const inputData = fs.readFileSync('/dev/stdin').toString().trim();
const score = parseInt(inputData, 10);
let result;
if (score >= 90)
    result = 'A';
else if (score >= 80)
    result = 'B';
else if (score >= 70)
    result = 'C';
else if (score >= 60)
    result = 'D';
else 
    result = 'F';

console.log(result);

 

'fs' 모듈 사용해서 입력 처리

728x90
반응형

1번 두 수 비교하기

문제

두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오.

 

입력

첫째 줄에 A와 B가 주어진다. A와 B는 공백 한 칸으로 구분되어 있다.

 

출력

첫째 줄에 다음 세 가지 중 하나를 출력한다. 

- A가 B보다 큰 경우에는 '>'를 출력한다. 

- A가 B보다 작은 경우에는 '<'를 출력한다. 

- A와 B가 같은 경우에는 '=='를 출력한다.

 

C++

#include <iostream>
#include <string>
using namespace std;
int main(){
    int a, b;
    cin >> a;
    cin >> b;
    string result = "";
    if (a > b)
        result = ">";
    else if (a < b)
        result = "<";
    else
        result = "==";
    cout << result;
    return 0;
}

 

C#

using System;
class Program{
    static void Main(string[] args){
        string input = Console.ReadLine();
        string[] arr = input.Split(' ');
        int a = int.Parse(arr[0]);
        int b = int.Parse(arr[1]);
        if (a > b) input = ">";
        else if (a < b) input = "<";
        else input = "==";
        Console.WriteLine(input);
    }
}

 

Python

strInput = input()
arrInput = strInput.split(' ')
a = int(arrInput[0])
b = int(arrInput[1])
if a > b: 
    c = ">"
elif a < b: 
    c = "<"
else: 
    c = "=="
print(c);

 

파이썬의 경우 조건문 작성 시

if 조건 :

elif 조건 :

else :

 

방식으로 작성한다. 그리고 중요한 점은 파이썬의 변수의 범위는 함수 단위로 이루어지기 때문에 조건문 내부에서 선언된 c는 외부에서도 접근이 가능하다. 하지만 함수 내에서 변수를 선언했다면 외부에서 접근할 수 없다.

 

Node.js

const readline = require('readline');
const rl = readline.createInterface({
    input:process.stdin,
    output:process.stdout
});

rl.question('', (answer) =>{
    let input = answer;
    let arr = input.split(' ');
    let a = parseInt(arr[0], 10);
    let b = parseInt(arr[1], 10);
    let result;
    if (a > b) {
        result = ">";   
    }
    else if (a < b) {
        result = "<";    
    }
    else {
        result = "==";  
    } 
    process.stdout.write(result);
    rl.close();
});

 

node.js 에서 입력은 모듈을 사용하여 처리한다.

 

1. 'readline' 모듈을 사용하여 입력 인터페이스를 생성한다.

2. 'rl.question'을 사용하여 사용자로부터 숫자를 입력받는다.

 

더 축약한 코드

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.question('', (answer) => {
    const [a, b] = answer.split(' ').map(Number);
    const result = (a > b) ? '>' : (a < b) ? '<' : '==';
    process.stdout.write(result);
    rl.close();
});

 

map을 사용하여 입력된 값을 저장하고 삼항 연산자로 조건을 비교하여 코드를 단축시켰다.

 

728x90
반응형

+ Recent posts