코딩테스트/백준

[백준] 9086 문자열

민톨이 2024. 10. 13. 17:26
728x90

📋 문제

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

📋 입력

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

📋 출력


📋 풀이

import java.util.*;

class Main {
     public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        sc.nextLine();

        for (int i = 0; i < n; i++) {
            String str = sc.nextLine();
            String answer = "";

            if (str.length() == 1){ //문자열 길이가 1인 경우
                answer = str + str;
            } else{
                answer = str.charAt(0) + "" + str.charAt(str.length() - 1);
            }
            System.out.println(answer);
        }
    }
}

 

- int n = sc.nextInt(); 로 테스트케이스 개수를 받는다

 

- sc.nextLine()을 변수에 담지 않고 그냥 사용하는 것도 가능

=> sc.nextLine()은 입력을 받아들이고 그 줄의 내용을 처리하기 때문에 별도로 변수에 담지 않고도 버퍼 정리 목적에는 충분

다만, 입력 값을 따로 활용할 필요가 없는 경우에만 이렇게 사용하는 것이 적절합니다. 만약 입력을 나중에 다시 참조해야 한다면 변수에 저장해야함

 

- if(str.length() == 1)

=> 문자열 길이가 1인 경우 ( 입출력 ex에서 "0"을 입력하면 "00"이 나오는 경우)를 위한 코드

 

- else 절

=> str.charAt(0) == 문자열 인덱스 0번   //// str.chartAt(str.length() - 1) == 문자열 마지막 인덱스 

를 중간에 ""를 넣어서 합치면 문제에서 요구하는 맨앞 맨뒤 글자만 붙어서 출력

'코딩테스트 > 백준' 카테고리의 다른 글

[백준] 10773 제로  (1) 2024.10.20
[백준] 10818 최소, 최대  (0) 2024.10.17
[백준] 10871 X보다 작은 수  (0) 2024.10.17
[백준] 2480 주사위 세개  (0) 2024.10.15
[백준]11720 - 숫자의 합  (0) 2024.10.10