티스토리 뷰
다차원 배열
지금 요런 느낌으로... 다차원 배열은 확장가능하다.
int[ ][ ] a = {{1,2}, {2,3}}인 2차원 배열이 있다면
이렇게 들어간다.
비행기 좌석예약 시스템 예제는
* 좌석 총 18석
* 행의 위치, 열의 위치 두 값 입력 받는다.
* 좌석배치 : 9행 2열
* 예약가능 좌석 0이 되면 프로그램 종료
* 예약가능 좌석을 입력하면 예약완료 메시지 출력
* 만약 기예약 상태인 좌석이라면 예약 완료 메시지와 다시 예약 요청 메시지 출력 후 비어있는 좌석 출력 후 알려줌.
* 행과 열을 입력 시 행은 8보다 크거나 0보다 작거나, 열은 1보다 크거나 0보다 작으면 잘못된 입력임을 출력
1. 입력 값과 2차원 배열 세팅, 자리는 18개
Scanner sc = new Scanner(System.in); // 입력
int[][] seat = new int[9][2]; // 2차원배열 생성
int count = 18; // 총 예약 가능 수
2. 예약 좌석 입력 / 행과 열 / 당연히 좌석은 0보다 커야하지.
while(count > 0) {
System.out.println("예약하실 좌석을 입력해주세요(총"+count+"석)");
System.out.print("행 : ");
int h = sc.nextInt();
System.out.print("열 : ");
int y = sc.nextInt();
3. 잘못된 입력과 예약이 되어 있지 않은 경우 예약 받고 완료 메시지 출력
if(h<1 || h >9 || y >2 || y<1) {
System.out.println("잘못된 입력입니다.");
}
else {
if(seat[h-1][y-1] == 0) {
//예약이 되어 있지 않는경우
System.out.println("예약이 완료 됐습니다.");
count--;
seat[h-1][y-1] = 1;
}
Else{
//예약이 되어 있는경우
System.out.println(h+"행, "+y+"열 예약이 완료된 자리입니다. 다시 예약해주세요.");//출력
// 비어있는 좌석 출력
for(int i = 0;i<seat.length;i++) { // 9
for(int j = 0;j<seat[i].length;j++) { // 2
if(seat[i][j] == 0) { //seat배열 의 값이 0인 것만 출력
System.out.println("비어있는 좌석 : " + (i+1) + "행" + (j+1) + "열");
}
}
}
4. 프로그램 종료 메시지 구현
대강 요런 식의 전개.
'[개발] - Java > Mega' 카테고리의 다른 글
숫자야구 배열에서 두 번째 안쪽 for문에서 조건식에 대한 질문 chat GPT (0) | 2023.03.27 |
---|---|
변수 값을 증가 시키기 chat GPT (0) | 2023.03.27 |
Day09-2. 선택 정렬 / 과제-비행기 예약 시스템 만들기 (0) | 2023.03.26 |
Day09-1. 다차원 배열 (0) | 2023.03.26 |
Day11. 달팽이 모양 배열 출력하기 chat GPT 설명 (0) | 2023.03.25 |