반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- AtoZ0403
- 코테준비
- 인프런
- 삼성
- java
- SWEA
- 백준
- 콜백지옥
- 자료구조
- 코테
- NestJS
- 스텍
- 삼성소프트웨어아카데미
- js
- 정렬
- array
- 프로그래머스
- 자바스크립트
- stack
- 배열
- 코딩
- 중간 평균값 구하기
- 알고리즘
- 코딩테스트
- mybatis
- javascript
- 그리디알고리즘
- 자바
- 카카오
- spring
Archives
- Today
- Total
개발에 AtoZ까지
[JAVA][D2] 1961. 숫자 배열 회전 본문
반응형
문제
N x N 행렬이 주어질 때,
시계 방향으로 90도, 180도, 270도 회전한 모양을 출력하라.
[제약 사항]
N은 3 이상 7 이하이다.
[입력]
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 번째 줄에 N이 주어지고,
다음 N 줄에는 N x N 행렬이 주어진다.
[출력]
출력의 첫 줄은 '#t'로 시작하고,
다음 N줄에 걸쳐서 90도, 180도, 270도 회전한 모양을 출력한다.
입력과는 달리 출력에서는 회전한 모양 사이에만 공백이 존재함에 유의하라.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)
예시
풀이
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Solution {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
int T = Integer.parseInt(br.readLine());
// 테스트케이스 반복
for (int i = 1; i <= T; i++) {
int N = Integer.parseInt(br.readLine());
String[] str = new String[N];
StringBuilder sb = new StringBuilder();
for (int n = 0; n < N; n++) {
StringTokenizer st = new StringTokenizer(br.readLine()," ");
String temp="";
//입력된 문자 공백제거 후 합치기
while (st.hasMoreTokens()) {
temp=temp+st.nextToken();
}
str[n]=temp;
}
for (int n = 0; n < N; n++) {
sb.append(up(str, n,N) + " ");
sb.append(left(str, n,N) + " ");
sb.append(down(str, n,N) + "\n");
}
System.out.println("#" + i);
System.out.print(sb.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
}
// 아래에서 위로방향
private static String up(String[] str, int n,int N) {
StringBuilder sb = new StringBuilder();
for(int i=N-1;i>=0;i--) {
sb.append(str[i].charAt(n));
}
return sb.toString();
}
// 오른쪽에서 왼쪽으로
private static String left(String[] str, int n,int N) {
StringBuilder sb = new StringBuilder();
for(int i=N-1;i>=0;i--) {
sb.append(str[N-n-1].charAt(i)) ;
}
return sb.toString();
}
// 위에서 아래방향
private static String down(String[] str, int n,int N) {
StringBuilder sb = new StringBuilder();
for(int i=0;i<N;i++) {
sb.append(str[i].charAt(N-n-1));
}
return sb.toString();
}
}
반응형
'코딩테스트 준비 > SWEA' 카테고리의 다른 글
[JAVA][D2] 1976. 시각 덧셈 (0) | 2021.01.10 |
---|---|
[JAVA][D2] 1954. 달팽이 숫자 (0) | 2021.01.10 |
[JAVA][D2] 1959. 두 개의 숫자열 (0) | 2021.01.10 |
[JAVA][D2] 1966. 숫자를 정렬하자 (0) | 2021.01.10 |
[JAVA][D2] 1970. 쉬운 거스름돈 (0) | 2021.01.10 |
[JAVA][D2] 1976. 시각 덧셈 (0) | 2021.01.10 |
[JAVA][D2] 1976. 시각 덧셈 (0) | 2021.01.08 |
Comments