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