+들어가며
java와 만난지 벌써 4주차다. 슬슬 익숙해져가곤 있지만 여전히 문제를 만나면 그것의 해결방안을 찾는데까지 오래걸리고 필요한 것들을 생각해보며 단계적으로 해결하는데 어려움이 있는 것 같다. 같은 문제라도 보다 더 좋은 아이디어를 떠올리는게 핵심일거 같은데 이러한 것은 반복적인 연습으로 만들어지는 것인가 싶다.
+ 배열
배열은 한 번에 많은 메모리 공간을 할단 가능한 자료 구조로 같은 타입의 데이터들이 순차적으로 저장된다. 이러한 배열의 인덱스는 항상 0부터 시작하고 이를 선언할 땐 변수처럼 자료형과 이름을 붙이고 이후 생성하는 구조이다. int [] intArr;의 형태를 사용하며
이후 intArr = new int [원소개수]; 의 구조로 배열을 생성한다. 배열은 보통 3차까지도 사용하며 한 차원이 늘어날때마다 자료형 뒤에 붙는 대괄호의 개수가 늘어난다. 내가 이번에 주로 사용한 2차원 배열의 경우 int [][] arr; arr = new int [행][열];의 구조를 하고있다. 이러한 배열은 주로 반복문과의 결합으로 사용되는데 이때 배열의 크기가 필요한 상황이 자주 생긴다. 이때 배열명.length 를 사용하여 크기를 값으로 사용할 수 있다.
+응용 실습(영화관 좌석 예약)




이 프로그램을 작성할때 상당히 애먹었던 기억이 난다. 기능들은 다 각각 메소드로 만들어서 메인 코드를 작성하는 건 큰 어려움이 없었지만 어떤 메소드에 어떤 값을 전달해야하는가부터 좌석의 표시를 어떻게 특수기호로 표현할 수 있을까등 상당히 많은 생각이 들게 했다. 예약 받은 자리는 1 비어 있는 자리는 0으로 표기하고 그것을 자리 표시하는 메소드에서 네모박스로 변환하는 코드는 혼자만의 생각으론 상당히 오랜 시간이 걸렸을 것이라 생각한다. 또 코드가 길어질 수록 중괄호의 범위나 실수로 빠뜨리는 경우를 바로 잡기가 너무 어려워서 또 애먹은거 같다.
+응용실습(랜덤 숫자 정렬하기)



해당 프로그램은 사용자가 배열의 크기와 랜덤 수의 범위를 입력하면 그에 맞는 수들을 배치하고 이를 정렬하는 프로그램이다. 이때 수의 정렬을 위해 버블소트라는 알고리즘을 사용했는데 바로 옆에 있는 두수를 비교하여 큰값을 뒤로 넘기는 방식으로 단순하고 직관적인 방식이라 배우기 좋았는데 중간에 temp라는 일종의 빈 컵을 만들어 두 수의 자리를 옮길 때 데이터가 손상되지 않도록 하는 방식은 반복 횟수처럼 단순히 새로 들어온 값만을 나타내면 되는 자료가 아닌 기록을 다 남겨야 하는 방식의 경우 상당히 유용할 것으로 보여 배울 점이 있다고 생각한다. 이 프로그램 역시 가독성과 유지보수를 위해 메소드로 각 기능을 구현한 후 메인에서 실행하는 형태인데 이때도 중괄호의 범위를 착각해 다른 결과를 만들어낸 실수가 많았어서 이 부분은 반드시 잡고 가야할 것 같다.
'JAVA' 카테고리의 다른 글
| 6주차 객체 지향 프로그래밍 체험 (0) | 2026.04.14 |
|---|---|
| 5주차 나의 위치를 체감하기 (0) | 2026.04.05 |
| 3주차 비교문과 반복문 (0) | 2026.03.22 |
| 2주차 변수와 자료형 (0) | 2026.03.15 |