백준 아카라카 2

KIMYEONGJUN·2025년 12월 4일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

첫 번째 줄에 양의 정수 K가 입력으로 주어진다. (1 ≤ K ≤ 50)

첫 번째 줄에 길이가 7인 모든 연속 부분 문자열 중 AKARAKA가 정확히 K번 나타나는 가장 짧은 문자열을 출력한다.

내가 이 문제를 보고 생각해본 부분

입력 처리:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));: 표준 입력(키보드)에서 데이터를 읽기 위한 BufferedReader 객체를 생성한다.
int K = Integer.parseInt(br.readLine());: 첫 번째 줄에서 입력받은 문자열(br.readLine())을 Integer.parseInt()를 이용해 정수 K로 변환한다.
K는 AKARAKA가 등장해야 하는 횟수이다.
문자열 구성 (StringBuilder 사용):
StringBuilder sb = new StringBuilder();: 결과 문자열을 효율적으로 구성하기 위해 StringBuilder 객체를 생성한다. 
StringBuilder는 문자열 추가/변경이 잦을 때 String보다 성능 면에서 유리하다.
sb.append("AKARAKA");: 모든 경우에 최소한 한 번의 AKARAKA는 포함되어야 하므로, 가장 먼저 AKARAKA를 StringBuilder에 추가한다.
반복하여 RAKA 추가:
for(int i = 0; i < K - 1; i++) { sb.append("RAKA"); }: K가 1보다 클 경우에만 추가 작업이 필요하다.
K가 1일 때는 반복문이 실행되지 않아 AKARAKA만 남는다.
K가 2일 때는 i=0일 때 한 번 실행되어 RAKA가 추가된다.(AKARAKARAKA)
이런 식으로 K의 값에 따라 K-1번 RAKA를 반복해서 추가하여 AKARAKA의 중복 부분을 효율적으로 이어붙인다.
결과 출력 및 자원 해제:
System.out.println(sb.toString());: StringBuilder에 저장된 최종 문자열을 toString() 메서드를 통해 String으로 변환한 후 콘솔에 출력한다.
br.close();: 사용했던 BufferedReader 객체를 닫아 자원을 해제한다.

코드로 구현

package baekjoon.baekjoon_31;

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

// 백준 32652번 문제
public class Main1226 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        // 입력 K를 정수로 받습니다.
        int K = Integer.parseInt(br.readLine());

        // StringBuilder를 사용하여 효율적으로 문자열을 구성합니다.
        StringBuilder sb = new StringBuilder();

        // 첫 번째 AKARAKA를 추가합니다.
        sb.append("AKARAKA");

        // K가 1보다 클 경우, K-1번 만큼 RAKA를 추가합니다.
        for(int i = 0; i < K - 1; i++) {
            sb.append("RAKA");
        }

        // 최종 문자열을 출력합니다.
        System.out.println(sb.toString());
        br.close();
    }
}

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글