문자열 (9086) 풀이

2023. 6. 16. 10:45BaekJoon/문자열

문제내용

사용자에게 테스트 개수 T와 문자열을 입력받아 각 문자열의 앞과 뒤를 출력하는 문제이다.

단, 문자열에 문자가 하나만 있을 경우 앞 뒤 같은 문자를 출력한다.


풀이

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		int t = Integer.parseInt(st.nextToken());
		for(int i = 0; i < t; i++){
			String s = br.readLine();
			char first = s.charAt(0);
			char last;
			if(s.length() == 1){
				last = s.charAt(0);
			}else {
				last = s.charAt(s.length()-1);
			}
			bw.write(first+""+last);
			bw.write("\n");
		}
		bw.flush();
		bw.close();
	}
}

사용자에게 테스트 개수와 문자열을 입력받기 위해 BufferedReader와 StringTokenizer를 사용해 t와 s에 각각 입력받았다.

먼저 첫번째 문자는 문자열의 0번째 인덱스에 해당하는 것이 고정이여서 s.charAt()메소드를 사용해 값을 넣었다.

마지막 값에서 만약 문자열의 길이가 1이라면 0번째 인덱스를 1이 아니라면 문자열길이의 -1을 넣었다. 이유는 charAt 메소드에서 문자열의 인덱스를 0번째부터 바라보기 때문이다.

마지막으로 값을 출력하기 위해 BufferedWriter를 사용해 출력하고 자원을 반납했다.


겪었던 문제

백준 특성 상 먼저 IDE에서 개발을 진행해본 다음에 테스트를 마치고 제출을 하는데 제출 양식에 맞추는 것이 필수이다. 그렇기에 클래스 이름은 Main으로 바꿔주는데 가장 상단에 pakage가 들어가서 런타임 오류를 반환받은 횟수가 적지 않다.

독자들은 꼭 pakage를 빼고 제출하기 바란다. 

만약 런타임 에러 (main class Main)을 반환받았다면 상단에 패키지가 있는지 없는지부터 확인해보자.

'BaekJoon > 문자열' 카테고리의 다른 글

알파벳 찾기 (10809) 풀이  (0) 2023.06.16
숫자의 합 (11720) 풀이  (2) 2023.06.16
아스키 코드 (11654) 풀이  (0) 2023.06.16
단어 길이 재기 (2743) 풀이  (2) 2023.06.15
문자와 문자열 (27866) 풀이  (0) 2023.06.15