suheang

[백준] | JAVA, 자바 | 27866번 - 문자와 문자열 본문

알고리즘

[백준] | JAVA, 자바 | 27866번 - 문자와 문자열

suheang 2024. 2. 11. 01:44

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

 

27866번: 문자와 문자열

첫째 줄에 영어 소문자와 대문자로만 이루어진 단어 $S$가 주어진다. 단어의 길이는 최대 $1\,000$이다. 둘째 줄에 정수 $i$가 주어진다. ($1 \le i \le \left|S\right|$)

www.acmicpc.net


문제 요약 : 

단어 와 정수


문제 풀이

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        String word = st.nextToken();

        st = new StringTokenizer(br.readLine());
        int number = Integer.parseInt(st.nextToken());

        char result = word.charAt(number - 1);
        System.out.println(result);
    }
}

 

1. 단어 S 입력받기

2. 정수 i 입력받기

3. charAt를 사용해서 문자열에서 특정 위치의 글자를 가져옴 (이때 문자열의 인덱스가 0부터 시작하므로 -1을 해야 함)

4. 가져온 글자 출력

 

(String을 사용할 수도 있지만 char을 사용한 이유는 글자 하나만 출력을 요구했기 때문에 부분 문자열을 반환하는 substring 을 사용하지 않고 단일 문자를 반환하는 charAt를 사용했다.) 

 

String으로 선언했을 경우

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        String word = st.nextToken();

        st = new StringTokenizer(br.readLine());
        int number = Integer.parseInt(st.nextToken());

        String result = word.substring(number - 1, number);
        System.out.println(result);
    }
}

 

substring에서 (number -1, number)를 받는 이유는 첫 번째 매개변수는 시작 인덱스, 두 번째 매개변수는 종료

인덱스로 반환되는 부분 문자열은 시작 인덱스부터 종료 인덱스 이전까지의 문자열이기 때문이다.

 

 

밑에는 char 사용, 위에는 String 사용


리팩토링

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String word = br.readLine().trim();

        int number = Integer.parseInt(br.readLine().trim());

        char result = word.charAt(number - 1);
        System.out.println(result);
    }
}