Coding Test/BaekJoon

[백준] 문자열 9086번 c++, java, python

owls 2023. 8. 29. 14:30
728x90

문제 설명

문제 바로가기

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

 

입출력 예

입력

3
ACDKJFOWIEGHE
O
AB

 

출력

AE
OO
AB

 

풀이

 

C++

#include <iostream>
#include <vector>

using namespace std;

int main(){

	//freopen("input.txt", "r", stdin);

    int n = 0;
    cin >> n;

    vector<string> result;
    for(int i = 0; i < n; i++){
        string s(""), str("");
        cin >> s;
        int start = 0;
        int end = s.size()-1;
        str.push_back(s[start]);
        str.push_back(s[end]);
        result.push_back(str);
    }

    for(const auto& it : result){
        cout << it << "\n";
    }
    
    return 0;
}

 

Java

import java.io.*;

public class Main {
     public static void main(String[] args) throws IOException {
        
       // System.setIn(new FileInputStream("input.txt"));

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int n = Integer.parseInt(br.readLine());

        for (int i = 0; i < n; i++) {
            String s = br.readLine();
            String str =""; 
            str = str + s.charAt(0) + s.charAt(s.length()-1);
            bw.write(str+"\n");
        }

        bw.flush();

    }
}

 

Python

리스트 컴프리헨션 방법을 사용한 풀이입니다.

2차원으로 저장되서 1차원으로 바꾸는 작업을 한번 더 했습니다. 이 작업도 리스트 컴프리헨션으로 해도 되고, sum함수를 사용해서 변환할 수 있습니다.

import sys

#sys.stdin = open("input.txt", "r")
n = int(sys.stdin.readline())
board = [list(map(str, sys.stdin.readline().split())) for _ in range(n)]
board2 = [data for inner in board for data in inner] #sum(board, [])

result = [ board2[i][0]+board2[i][len(board2[i])-1] for i in range(n) ]

for value in result:
    print(value)
728x90