반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

배움과 기록의 장

[백준] 9086번: 문자열 (Java) 본문

problem solving

[백준] 9086번: 문자열 (Java)

chaeunii 2023. 2. 27. 00:05

✅ 문제

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

 

✅ 풀이

  • 처음에 num 인풋을 nextInt()를 이용하여 받은 후, 그 다음 인풋을 nextLine()으로 받았더니 인덱스에러가 떴다. nextInt()가 엔터 전까지만 입력을 받아 nextLine이 엔터를, 즉 공백을 입력 받기 때문에 생기는 문제라고 한다. 그래서 똑같이 nextLine()로 입력받아 Integer.parseInt()를 통해 string을 int로 변환해주었다.
  • string을 int로 바꾸는 방법에는, 'Integer.parseInt(str)'를 사용하거나, 'str.charAt(0) - 48'로 char로 바꾼 후 아스키코드를 이용하는 방법이 있다. 단 후자는 한자리 숫자일 때만 가능하다.
  • char + char을 하면 아스키코드로 인해 int로 계산된다. 이를 방지하고 문자열 더하기를 해주기 위해,' ""+  '를 추가해주거나 'String.valueOf(~) + String.valueOf(~)'를 사용해주면 된다.

 

✅ 코드

import java.util.Scanner;

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


        //입력 sc.nextLine()
        int num = Integer.parseInt(sc.nextLine());  // int num = Integer.parseInt(sc.nextLine());

        for(int i = 0; i < num; i++){
            String input = sc.nextLine();
            System.out.println(""+input.charAt(0) + input.charAt(input.length()-1)); //String.valueOf()
        }

    }
}

 

반응형