Coding Test - Java - Programmers

문자열 돌리기

양세진 2025. 3. 9. 17:41

https://school.programmers.co.kr/learn/courses/30/lessons/181945

문제 설명

문자열 str이 주어집니다.

문자열을 시계방향으로 90도 돌려서 아래 입출력 예와 같이 출력하는 코드를 작성해 보세요.


제한사항

1 ≤ str의 길이 ≤ 10


입출력 예

입력 #1

abcde

출력 #1

a b c d e

그냥 뽑아서 하면되긴하는데

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next();
        int size = a.length();
        int startFlag = 0;
        String result = "";
        while(size > 0){
            String res = a.substring(startFlag , ++startFlag);
            result = result + res +"\\n";
            size--;
        }
        
        System.out.print(result);
    }

다른사람 풀어놓은거 보니까

charAt 이걸로하는데 자바 3년은 했는데 이걸 몰랏음ㅋㅋ

에초에 이런거 쓸 일이 코테아니면 거의없는거 같아..

charAt 메서드 설명

charAt(int index) 메서드는 문자열(String)에서 특정 위치에 있는 **문자(char)**를 반환합니다.

  • 인덱스는 0부터 시작하며, str.charAt(0)은 'a', str.charAt(1)은 'p'가 됩니다.
  • 인덱스가 문자열의 길이보다 크거나 작으면 StringIndexOutOfBoundsException이 발생합니다.

기존 코드에서 substring → charAt으로 변경하기

기존 코드는 substring을 사용하여 한 글자씩 추출하고 줄바꿈(\\n)을 추가하고 있습니다.

이를 charAt으로 변경하면 코드가 더 간결해지고 성능도 조금 더 좋아질 수 있습니다.

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next();
        int size = a.length();

        StringBuilder result = new StringBuilder();

        for (int i = 0; i < size; i++) {
            result.append(a.charAt(i)).append("\\n");
        }

        System.out.print(result.toString());
        sc.close();
    }
}