반응형
안녕하세요! 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(순위)
반응형
'Algorithm > CodeUp' 카테고리의 다른 글
[CodeUp_Java] Q1407 : 문자열 출력하기 1 (0) | 2022.07.25 |
---|---|
[CodeUp_Java] Q1406 : love (0) | 2022.07.25 |
[CodeUp_Java] Q1403 : 배열 두번 출력하기 (0) | 2022.07.25 |
[CodeUp_Java] Q1402 : 거꾸로 출력하기 3 (0) | 2022.07.20 |
[CodeUp_Java] Q1382 : GuguClass (0) | 2022.07.20 |