1번 문자와 문자열

문제

단어 S와 정수 i가 주어졌을 때, S의 i번째 글자를 출력하는 프로그램을 작성하시오.

 

입력

첫째 줄에 영어 소문자와 대문자로만 이루어진 단어 S가 주어진다. 단어의 길이는 최대 1,000이다. 둘째 줄에 정수 i가 주어진다. ( 1 i |S|)

 

출력

S의 i번째 글자를 출력한다.

 

주어진 문자열에서 i번째 문자가 무엇인지 출력한다.

 

C++

#include <iostream>
#include <string>
using namespace std;
int main(){
    string s;
    int i;
    cin >> s;
    cin >> i;
    cout << s[i - 1];
    return 0;
}

 

string도 문자 배열처럼 접근해서 사용할 수 있다.

 

C#

using System;
class Program{
    static void Main(string[] args){
        string s = Console.ReadLine();
        int i = int.Parse(Console.ReadLine());
        Console.Write($"{s[i - 1]}");
    }
}

 

C#의 string도 마찬가지로 배열식으로 접근이 가능하다.

 

Python

s = input()
i = int(input())
print(s[i - 1])

 

Node.js

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin','utf8').split('\n');
const s = input[0];
const i = parseInt(input[1]);
console.log(s[i - 1]);

 

2번 단어 길이 재기

문제

알파벳으로만 이루어진 단어를 입력받아, 그 길이를 출력하는 프로그램을 작성하시오.

 

입력

첫째 줄에 영어 소문자와 대문자로만 이루어진 단어가 주어진다. 단어의 길이는 최대 100이다.

 

출력

첫째 줄에 입력으로 주어진 단어의 길이를 출력한다.

 

C++

#include <iostream>
#include <string>
using namespace std;
int main(){
    string s;
    cin >> s;
    cout << s.length();
    return 0;
}

 

length 함수를 사용해서 문자열의 길이를 구할 수 있다.

 

C#

using System;
class Program{
    static void Main(string[] args){
        string s = Console.ReadLine();
        Console.Write(s.Length);
    }
}

 

C#은 Length 프로퍼티로 문자열의 길이에 접근할 수 있다.

 

Python

s = input()
print(len(s))

 

len(string)으로 문자열의 길이를 반환할 수 있다.

 

Node.js

const fs = require('fs');
const s = fs.readFileSync('/dev/stdin','utf8').trim();
console.log(s.length);

 

trim()은 입력된 문자열 양 끝의 공백을 제거하는데 이걸 사용하지 않았을 때 틀렸다는 채점 결과가 나왔다.

정확한 입력을 받기 위해서 trim을 사용해 주는 게 좋을 것 같다.

 

js에서는 string.length 프로퍼티로 길이를 구할 수 있다.

 

3번 문자열

문제

문자열을 입력으로 주면 문자열의 첫 글자와 마지막 글자를 출력하는 프로그램을 작성하시오.

 

입력

입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 한 줄에 하나의 문자열이 주어진다. 문자열은 알파벳 A~Z 대문자로 이루어지며 알파벳 사이에 공백은 없으며 문자열의 길이는 1000보다 작다.

 

출력

각 테스트 케이스에 대해서 주어진 문자열의 첫 글자와 마지막 글자를 연속하여 출력한다.

 

케이스의 문자열의 처음과 끝 문자를 출력해 준다. 문자가 하나인 경우는 한 문자가 두 번 출력된다.

 

C++

#include <iostream>
#include <string>
using namespace std;
int main(){
    int t;
    cin >> t;
    string s;
    for (int i = 0; i < t; i++){
        cin >> s;
        int len = s.length();
        cout << s[0] << s[len - 1] << "\n";
    }
    return 0;
}

 

문자열의 길이를 사용해서 마지막 인덱스를 구할 수 있다.

 

C#

using System;
class Program{
    static void Main(string[] args){
        int t = int.Parse(Console.ReadLine());
        for (int i = 0; i < t; i++){
            string s = Console.ReadLine();
            int len = s.Length;
            Console.WriteLine($"{s[0]}{s[len-1]}");
        }
    }
}

 

Python

t = int(input())
for i in range(t):
    s = input()
    l = len(s)
    print(f"{s[0]}{s[l - 1]}")

 

Node.js

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin','utf8').trim().split('\n');
const t = parseInt(input[0]);
for (let i = 1; i <= t; i++){
    const s = input[i];
    const l = s.length;
    console.log(`${s[0]}${s[l - 1]}`);
}

 

4번 아스키코드

문제

알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키코드값을 출력하는 프로그램을 작성하시오.

 

입력

알파벳 소문자, 대문자, 숫자 0-9 중 하나가 첫째 줄에 주어진다.

 

출력

입력으로 주어진 글자의 아스키코드 값을 출력한다.

 

입력된 문자를 아스키코드로 출력한다.

 

C++

#include <iostream>
using namespace std;
int main(){
    char c;
    cin >> c;
    int ascii_val = static_cast<int>(c);
    cout << ascii_val;
    return 0;
}

 

문자를 int로 타입을 변경하면 아스키코드로 치환된다.

 

또는 

 

#include <iostream>
using namespace std;
int main(){
    char c;
    cin >> c;
    int ascii_val = c - 0;
    cout << ascii_val;
    return 0;
}

 

C++에서는 문자에 정수 0을 빼주면 해당 문자의 아스키코드를 얻을 수 있다.

 

C#

using System;
class Program{
    static void Main(string[] args){
        char c = (char)Console.Read();
        int ascii_val = (int)c;
        Console.Write(ascii_val);
    }
}

 

Console.ReadLine/Read()는 문자열로만 반환되기 때문에 문자로 할당할 때 char 캐스트를 해야 한다.

(int)로 문자를 정수형으로 변환하면 아스키코드를 구할 수 있다.

 

Python

c = input();
print(ord(c));

 

파이썬은 문자를 아스키코드로 변환하는 함수 ord()가 제공된다.

 

Node.js

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

readline.question('', c => {
    const ascii_val = c.charCodeAt(0);
    console.log(`${ascii_val}`);
    readline.close();
});

 

js에서는 char.charCodeAt(0)으로 문자를 아스키코드로 변환할 수 있다.

728x90
반응형

+ Recent posts