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
반응형
'코딩테스트 - 프로그래머스 > Lv. 0' 카테고리의 다른 글
[10] JAVA 문자열 겹쳐쓰기 (0) | 2023.11.14 |
---|---|
[9] JAVA 홀짝 구분하기 (0) | 2023.11.14 |
[7] JAVA 문자열 붙여서 출력하기 (0) | 2023.11.14 |
[6] JAVA 덧셈식 출력하기 (0) | 2023.11.14 |
[5] JAVA 특수문자 출력하기 (0) | 2023.11.14 |