본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1405 : 숫자 로테이션

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1405 숫자 로테이션 (자바, JAVA)입니다.

Intro

Question

문제 설명

입력

첫째 줄에 숫자의 개수 n이 입력된다.( 1 <= n <= 1,000)
둘째 줄에 n개의 정수 k가 공백으로 구분되어 입력된다.(1 <= k <= 1,000)

출력

숫자를 로테이션한 결과를 출력한다.(단, 왼쪽으로만 돌린다.)

예시

  • 입력 :
    5
    1 2 3 4 5
  • 출력 :
    1 2 3 4 5
    2 3 4 5 1
    3 4 5 1 2
    4 5 1 2 3
    5 1 2 3 4

Solution (풀이)

  • 풀이 1 : 메모리 13876, 시간 110
public class Answer1 {

    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);
        StringBuffer sb = new StringBuffer();
        int n = sc.nextInt();
        int[] num = new int[n];
        for (int i=0; i<n; i++) {
            num[i] = sc.nextInt();
        }

        for (int i=0; i<n; i++) {
            for (int j=0; j<n; j++) {
                sb.append(num[j]).append(" ");
            }
            sb.append("\n");

            int temp;
            temp=num[0];
            for (int j=1; j<n; j++) {
                num[j-1]=num[j];
            }
            num[n-1]=temp;
        }
        System.out.println(sb);
        sc.close();
    }

}
  • 풀이 2 : 메모리 12284, 시간 78
public class Answer2 {

    public static void main(String[] args) throws IOException {
          BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
          StringBuilder sb = new StringBuilder();
          int n = Integer.parseInt(br.readLine());
          String str = br.readLine();
          StringTokenizer st = new StringTokenizer(str, " ");

          String[] num = new String[n];
          for (int i=0; i<n; i++) {
              num[i] = st.nextToken();
          }

          for (int i=0; i<n; i++) {

              for (int j=0; j<n; j++) {
                  sb.append(num[j]).append(" ");
              }
              sb.append("\n");

              String temp;
              temp=num[0];
              for (int j=1; j<n; j++) {
                  num[j-1]=num[j];
              }
              num[n-1]=temp;
          }
          System.out.println(sb);
    }

}

Ranking(순위)

반응형