[코드트리 챌린지] 코드트리 네번째 실력진단평가
추석 연휴를 하루 남기고 실력 진단 평가를 보았다.
4번째 실력진단평가
나를 힘들게 만들었던 격자 문제를 풀었다.
다만 다음문제에서 막혔다. 시간이 조금만 더있었더라면…
결과
이번 점수는 498점이 나왔다.
조금씩 점수가 오르기 시작한다.
진단 요약
2차원 배열을 마저 학습하고 시뮬레이션으로 넘어가야겠다.
내가 무엇이 부족한지 진단해주는 부분이 코드트리의 장점인것 같다.
인상깊은 문제
격자 반대로 채우기
문제 설명
n x n 크기의 격자에 정수를 채워넣으려고 합니다. 1부터 시작해서 차례대로 n 2 까지 채워넣는데, 다음 그림과 같이 오른쪽 아래에서 부터 위 아래 지그재그 방향으로 채워넣는 프로그램을 작성해보세요.
제한사항
시간 제한: 1000ms 메모리 제한: 80MB
입력 예
4
출력 예
1 1 1 1 1
13 12 5 4
14 11 6 3
15 10 7 2
16 9 8 1
나의 풀이 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n=0;
n = sc.nextInt();
int[][] arr = new int[n][n];
int count = 1;
if (n%2 == 0){
for(int c=n-1; c>=0; c--){
if (c%2 == 1){
for(int r=n-1; r>=0; r--){
arr[r][c] = count;
count++;
}
}
else if (c%2 == 0){
for(int r=0; r<n; r++){
arr[r][c] = count;
count++;
}
}
}
}
if (n%2 == 1){
for(int c=n-1; c>=0; c--){
if (c%2 == 0){
for(int r=n-1; r>=0; r--){
arr[r][c] = count;
count++;
}
}
else if (c%2 == 1){
for(int r=0; r<n; r++){
arr[r][c] = count;
count++;
}
}
}
}
for(int i=0; i<n; i++) {
for(int j=0; j<n; j++) {
System.out.print(arr[i][j] +" ");
}
System.out.println();
}
}
}
배운점
푸는데 시간이 많이 걸린 문제였다. 어렵게 풀고 해설을 보는데 코드가 너무 간결하고 쉬웠다.
지금껏 띄엄 띄엄 풀어왔더니 이전 문제들에서 학습해야 할 부분(스킬)을 놓친것이었다.
진도가 느리더라도 커리큘럼을 믿고 차근차근 가야 구멍이 안생길것 같다.
Leave a comment