java 배열 프로그래밍 질문
그림과 같이 4행 3열의 배열이 있는데 오른쪽 그림과같이 숫자 배열을 바꾸려면 어떻게 코딩해야 하나요?
아래에 있는 11 12를 위로 올리고 그 위에 내용은 밑으로 쭉 내리고 싶습니다....ㅎㅎ 도와주십쇼
55글자 더 채워주세요.
1개의 답변이 있어요!
이런건 다중 for 문을 사용하려 문제를 푸시면 됩니다
4행 3열이라는게 나왔으므로
위치값으로 살펴보면
(y값,x값) 으로 표시함
-------
(1,1)(1,2)(1,3)
(2,1)(2,2)(2,3)
(3,1)(3,2)(3,3)
(4,1)(4,2)(4,3)
--------
이렇게 되겠네요
그러면 위 표를 보면
(4,2) => (1,2)
(4,3) => (1,3)
(1,2) => (2,2)
(1,3) => (2,3)
(2,2) => (2,2)
(2,3) => (2,3)
(3,2) => (3,2)
(3,3) => (3,3)
이렇게 해당 xy측에 있는 상수값을 이동해주면 됩니다만, 바로 저렇게 이동시키게 되면
이동이 아니라 경우에 따라 한가지 숫자로 도배가 됩니다
즉, 이동해야 할 자리의 숫자를 보전해줘야 하는거죠
그래서 이를 로직상 다시 정리해보면?
(4,2) => buff2
(4,3) => buff3
(3,2) => (4,2)
(3,3) => (4,3)
(2,2) => (3,2)
(2,3) => (3,3)
(1,2) => (2,2)
(1,3) => (2,3)
buff2=> (1,2)
buff3=> (2,2)
이렇게 옮겨주면 됩니다
# basic 프로그램으로 코딩한다면 아래처럼 됩니다 # 배열은 arr(4,3) 이라고 정의합니다 dim arr(4,3) ... 이 부분에 2차원 배열에 원하는 값 넣어주세요 ... buff2 = arr(4,2) buff3 = arr(4,3) for y = 3 to 1 step -1 arr(y,2) = arr(y+1,2) arr(y,3) = arr(y+1,3) next y arr(1,2) = buff2 arr(1,3) = buff3이걸 다른 언어로 코딩한다고 해도 로직은 동일하니 해당 명령문을 해당 타언어로 컨버전해서
사용하시면 됩니다