본문 바로가기
프로그래머스/0단계

문자열 돌리기

by 긴가우딘 2024. 5. 17.

문제 설명

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


제한사항

1 ≤ str의 길이 ≤ 10


입출력 예

입력 #1

abcde

출력 #1

a
b
c
d
e

드디어 그동안 외웠던 것들을 써먹을 수 있는 시간이었다

처음에는 문제를 보고 %s \n 이 방법들을 떠올렸으나,

출력을 해보니 String 문자끼리 개행이 되는 것이라 이건 안되는 방법이었다

입력받은 String 문자를 하나하나씩 쪼개야 하는 방법을 떠올리니

charAt()을 사용해야겠다 싶었다

그래서 처음에는

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next();
        char ch = a.charAt();
        
        for(int i=0; i<a.length(); i++) {
            System.out.println(ch);
        }
    }
}

 

이렇게 했는데 오류가 발생했다.

/Solution.java:7: error: method charAt in class String cannot be applied to given types;

char ch = a.charAt();

→ charAt() 함수에 인덱스를 제공하지 않아서였다!

“그렇다면 for문 안에 넣어야겠군” 이라는 생각을 했어야 했는데… 출력문 안에 a.charAt(i)를 넣을 생각을 못했다ㅠㅠㅠ

그러다 생각해낸게 split()함수였다

 

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next();
        String[] arr = a.split("");
        
        for(int i=0; i<arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}

 

성공!

 

그리고 다른 사람 답변 보기에서 a.charAt(i)를 출력문 안으로 넣으면 된다는 방법을 깨달았다!

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next();
        
        for(int i=0; i<a.length(); i++) {
            System.out.println(a.charAt(i));
        }
    }
}

 

조금 더 꾸준하게 연습해보자 아자아자!