[백준] n.9086 - 각 문자열의 first, last 문자를 함께 출력하기

    SMALL

    1. 문제

    https://www.acmicpc.net/problem/9086

     

    9086번: 문자열

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

    www.acmicpc.net


    2. 주요 개념

    - 문자열 (next()와 nextLine()의 차이)

    - 1차원 배열

    - 문자열 나누기: split

     

    3. 나의 풀이 (*은 잘 안풀린 부분)

    import java.io.*;
    import java.util.*;
    
    public class Main {
    
      public static void main(String[] args) {
    
        Scanner s = new Scanner(System.in);
    
        int t = s.nextInt();
        // testcase 수 받기
    
        String input;
        // 문자열 입력값 변수
    
        String[] split_arr;
        // split으로 인한 문자를 저장하는 배열
    
        String[] result_arr = new String[t];
        // 최종 결과값 저장 배열 (각 문자열의 첫 문자+끝 문자)
    
        for (int i = 0; i < t; i++) {
          input = s.next();
          // 문자열 입력 받기
          // * next: 개행 문자를 입력 문자로 포함 X (반복문 3번 돌면 값 3번 받음)
          // * nextLine: 개행 문자를 입력 문자로 포함 O (반복문 3번 돌면 값 2번 받음 > 처음 값은 '\n'이 차지)
          
          split_arr = input.split("");
          // * split: 문자열을 구분 문자(delimiter)로 나눔
          
          int s_length = split_arr.length;
          result_arr[i] = split_arr[0] + split_arr[s_length-1];
          // 한 문자열의 첫 문자 + 끝 문자 저장
          // * idx에는 음수 X (배열의 총 길이 - 1 : 마지막 문자)
        }
    
        for (int i=0; i<t; i++) {
          System.out.println(result_arr[i]);
        }
    
      }
    
    }

     

    4. 짚고 넘어가기!

    - next() : 개행 문자 ('\n')이 입력 값으로 들어가지 않음 !

      ex. for문 3번 반복 시 > 문자열 입력 값을 3번 입력 가능

    - nextLine() : 개행 문자 ('\n')이 입력 값으로 들어감 !

      ex. for문 3번 반복 시 > 문자열 입력 값을 2번 입력 가능 ('/n'이 한 공간을 차지!)

    - split(구분 문자): 문자열을 delimiter(구분 문자)에 따라 나누는 함수

    - index는 음수 X

     

    728x90

    댓글