본문 바로가기

코딩테스트/알고리즘

Java 코딩테스트 준비하기 - 배열과 입출력 -

 

각각의 위치에 integer를 저장할 수 있는 공간이 마련이 되고 초기의 값을 0으로 초기화 합니다.
또한, 배열 생성 중 초기의 값을 중괄호로 묶어서 값을 주어 초기화 할 수 있습니다.

배열 입출력 예제를 살펴보겠습니다.

주어진 입력 값을 이용하여 배열로 받을 수 있습니다
먼저 숫자 값 5를 입력 받기위해 int으로 정의를 해주었습니다.
배열의 크기를 100으로 정의하였지만 실제 문제에서는 맥스 값이 주어질 수 있습니다.

일반적으로 메인 함수가 static으로 주어지기 때문에 변수사용을 위해서 변수 또한 static으로 정의해 주었습니다.

Scanner를 이용하여 입력 값을 받아줄 예정입니다. ( in 은 표준입력을 뜻합니다)
nextInt() 를 사용하여 값을 받아주며 for문을 이용해 해당하는 배열의 index에 값을 넣어줍니다.

입력해준 배열의 값을 확인하기 위해 for문을 이용하여 출력하여 보겠습니다.

“90 70 80 60 100”과 같이 입력과 동일하게 출력 값이 나오는 것을 확인할 수 있습니다.

다음은 이차원배열을 보겠습니다 [ ][ ]으로 이차원배열을 정의합니다.

각각의 값은 첫번째 값은 행 두번째 값은 열로 보게 됩니다. 초기의 값은 모두 0으로 초기화됩니다.
또한, 일차원 배열과 마찬가지로 생성과 동시에 기본값을 주어 초기화 시킬 수 있습니다.

각 행 별로 중괄호를 이용하면 값을 주어 초기화 할 수 있습니다.

이차원 배열의 입출력 예제를 살펴 보겠습니다.

Rowcol의 변수정의를 하고 이차원배열을 정의해줍니다 (임의로 100x100)
스캐너를 통해 rowcol의 값을 받고 for문을 이용하여 배열의 값을 받아 해당 인덱스에 입력하게 됩니다.

제대로 입력되었는지 출력해보겠습니다.

마지막으로 이차원배열 연습을 위해 십자가 출력을 해볼 것입니다.

Row col을 주어지고 그 값 만큼 이차원 배열을 만들어 줍니다.
임의의 시작위치가 주어질 것이고 0은 빈곳으로 2는 벽을 의미합니다.
시작 위치에서 경계면과 벽을 만날 때 까지 1을 입력 해주는 문제입니다.

변수정의와 이차원배열을 초기화 해줍니다.
각각의 값들을 스캐너로 입력 받아주고 cross메서드를 정의해서 호출하여 사용해 볼 것입니다.

Cross 메서드에서 시작위치가 0이 아니면 리턴을 해주고 0이라면 1로 마킹을 해줍니다.
상하좌우 for문을 이용하여 해당위치의 값을 확인하고 위와 같은 작업을 반복합니다.

종료가 되면 출력하여 제대로 작업되었는지 확인해 봅니다.