회전하는 문자열 출력하기

Jane·2023년 2월 15일
0

IT 수업 정리

목록 보기
42/124

문제

  1. 문자열을 입력 받아 한 글자씩 회전시켜 모두 출력하는 프로그램을 작성하라.
    문자열을 입력하세요. 빈칸이나 있어도 되고 영어 한글 모두 됩니다.

[Console]
I Love you
Love youI
Love youI
ove youI L
ve youI Lo
e youI Lov
youI Love
youI Love
ouI Love y
uI Love yo
I Love you

로직

  • 문자열을 입력받는다. (입력받고 String에 킵해둔 다음, 잘 들어갔는지 확인해볼것!)
  • 회전하는 문자열을 보여주기 위해서 배열로 문자를 저장해둔다. 여기서 눈속임 용으로 배열 길이를 2배로 늘여서 준비한 다음, for문으로 돌릴 때 원하는 부분이 나올 수 있도록 한다.

입력받은 문자열 : 12345
배열에 넣을 때는 >> '1' '2' '3' '4' '5' '1' '2' '3' '4' '5'
보여줄 때는
[12345]12345
1[23451]2345
12[34512]345
123[45123]45
1234[51234]5
12345[12345]

  • 문자열의 위치에 맞는 문자를 알아내는 함수 : charAt(index)
  • 출력할 때 2중 for문을 이용한다.
    • 겉의 for문은 몇 번을 반복할 것인지 출력
      (String 길이 + 1을 해줘야 원래 것까지 출력할 수 있다.)
    • 안의 for문은 내용을 출력

코드

import java.util.Scanner;

class JavaPractice {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		String str = sc.nextLine(); // scanner로 String 입력받기
        
		int num = str.length();

		char[] arr = new char[str.length() * 2];
        // 입력한 String의 문자를 담을 배열

		for (int i = 0; i < arr.length; i++) {
        // 문자열을 배열로 설정하는 함수 (배열의 길이는 str의 2배)
			if (i >= num) { // index가 str의 길이가 넘어갈 때(2번째로 도는 함수)
				arr[i] = str.charAt(i - num);
                // index를 str 길이 만큼을 제외한 다음 그에 맞는 문자를 넣어준다.
			} else {
				arr[i] = str.charAt(i);
                // index를 str의 위치에 맞는 문자를 넣어준다.
			}

		}

		System.out.println("==========");

		// 출력

		for (int i = 0; i <= num; i++) {
        // 원래 것까지 돌아서 나올 것이라 index 번호까지 돌릴 예정

			for (int j = i; j < num + i; j++) {
			// 출력할 index 부분을 증가시켜가면서 print
				System.out.print(arr[j]);
			}
			System.out.println(); 

		} // end of for in for

	}

}

[Console]
(입력) i love you


i love you
love youi
love youi
ove youi l
ve youi lo
e youi lov
youi love
youi love
oui love y
ui love yo
i love you

profile
velog, GitHub, Notion 등에 작업물을 정리하고 있습니다.

0개의 댓글