콩부방
1512 : 숫자 등고선 본문
728x90
어느날 등산을하다가 길을 찾기 위해 지도를 보다가 땅의 높낮이를 표시되어 있는 등고선을 보면서 문득 2차원 배열로 숫자등고선을 만드는 문제가 생각났다.
여러분들은 배열크기 N과 시작위치 X , Y를 입력받아 숫자등고선을 만드시오.
예를 들어 배열크기가 5이고 시작위치가 3 , 4 라면 3,4로 시작하는 다음과같은 숫자등고선을 만들수 있다.
6 5 4 3 4
5 4 3 2 3
4 3 2 1 2
5 4 3 2 3
6 5 4 3 4
입력
배열의 크기 N의 범위는 1<=N<=100 이며 좌표값 X,Y는 배열크기보다 작다.
출력
숫자등고선을 출력한다. 숫자와 숫자 사이는 공백을 출력한다.
입력 예시 예시 복사
5 3 4
출력 예시
6 5 4 3 4
5 4 3 2 3
4 3 2 1 2
5 4 3 2 3
6 5 4 3 4
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int x = sc.nextInt();
int y = sc.nextInt();
int[][] b = new int[101][101];
b[x][y]= 1;
int v = b[x][y];
for(int i = x-1; i >= 1; i--) {//i값 2 1 두번 실행
b[i][y] = ++v; //위로
}
v = b[x][y];
for(int i = x+1; i <= n; i++ ){ //i값 4 5 두번실행
b[i][y] = ++v; //아래로
}
for(int i = 1; i <= n; i++){ // i값 1 2 3 4 5 다섯번 실행
v = b[i][y]; //b[i][y] 기준 왼쪽
for(int j = y-1; j >= 1; j-- ){ //j값 3 2 1 세번 실행
b[i][j] = ++v;
}
v = b[i][y];
for(int j = y+1; j <= n; j++ ){//오른쪽
b[i][j] = ++v;
}
}
//출력
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
System.out.print(b[i][j]+" ");
}
System.out.println();
}
}
}
출처 : https://codeup.kr/problem.php?id=1512
숫자 등고선
어느날 등산을하다가 길을 찾기 위해 지도를 보다가 땅의 높낮이를 표시되어 있는 등고선을 보면서 문득 2차원 배열로 숫자등고선을 만드는 문제가 생각났다. 여러분들은 배열크기 N과 시작위
codeup.kr
728x90
'알고리즘 공부 > CodeUp' 카테고리의 다른 글
1527 : [기초-함수작성] 함수로 123 값 출력하기 (0) | 2021.09.22 |
---|---|
1526 : [기초-함수작성] 함수로 hello 문자열 출력하기 (0) | 2021.09.22 |
1511 : 테두리의 합 (0) | 2021.09.19 |
1510 : 홀수 마방진 (0) | 2021.09.19 |
1509 : 진격 후 결과 (0) | 2021.09.19 |
Comments