코딩테스트 - 프로그래머스/Lv. 0

[8] JAVA 문자열 돌리기

유혁스쿨 2023. 11. 14. 11:43
728x90
반응형

문제설명

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

 

입력 #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();
        if (a.length() >= 1 && a.length() <= 10) {
            for(String splitValue : a.split("")) {
                System.out.println(splitValue);
            }
        }
    }
}

[풀이과정] 

입력받은 문자열의 길이에 대한 범위를 조건으로 지정한 뒤 해당 문자열을 split하여 배열로 한글자씩 반환받는다.반환받은 배열을 향상된 for문을 통해 순차적으로 출력해준다.

 

[리팩토링]

split()의 경우 정규표현식을 사용하기 때문에 성능면에서 toCharArray에 비해 불리할 수 있다.


[다른사람 풀이]

1) String.toCharArray()

for(char ch : a.toCharArray()) {
    System.out.println(ch);
}

String의 toCharArray는 대상 문자열을 한 문자 단위로 문자 타입의 char[] 배열로 반환한다.

split()을 통해 String[] 배열로 반환받는것과 같이 향상된 for문을 통해 순차적으로 출력한다.

 

 

2) String.charAt()

for(int i = 0; i < a.length(); i++) {
    System.out.println(a.charAt(i));
}

 

위의 코드처럼 toCharArray를 사용한다면 배열로 한번 반환되는작업을 진행하기 때문에 리소스 비용이 발생할 수 있다.

문자열의 길이만큼 반복한 뒤 charAt()을 통해 직접 하나씩 접근하는것이 효율적이기도 하다.

 

728x90
반응형