1은 전 글이라고 하자.
아무튼 오늘 끝장낸 문제는 영화관 예약 시스템 2...
1. 예약 정보(이름, 열, 행, 예약 좌석 수)를 파라미터로 받아 예약하는 reverse 메소드
2. 이름을 파라미터로 받아 이름으로 예약된 자리 취소하고, 취소된 수 좌석 수 리턴하는 cancel 메소드
3. 2번 오버로딩 한, 열과 행, 좌석 수를 파라미터로 받아 해당되는 모든 좌석의 예약을 취소하고 취소된 좌석 수를 리턴하는 cancel 메소드
4. 예약된 모든 좌석 수를 리턴하는 getNumber~() 메소드
3, 4는 그냥 무난하게 했고, 1, 2번이 골때리더라...... 결국 답을 찾아보고 오답노트?를 한다.
해설이랑 내가 한 거랑 인덱스가 달라서 그냥 내식대로 고쳐쓴다 낄낄
먼저 1번
for(int i = 0; i < numSeat; i++){ //틀린부분
Seat current = seats[rowIndex][col - 1 + i];
if(current.isOccupied()){ //예약된 자리라면
for(int j = 0; j < i; j++){
seats[rowIndex][col - 1 + j].cancel(); //앞에서 예약한 자리 모두 취소
}
return false;
}
current.reserve(name); //빈자리면 예약
}
한 반복문 안에서 예약확인&&예약을 어떻게 해줘야 할지 모르겠어서 반복문을 2개 돌렸는데, 자꾸 오류가 나서... 해설을 찾아봤다. 반복문 돌리다 예약된 자리가 나오면 취소해주는 방법도 생각을 했는데, 어떻게 해줘야 할지 몰라서 패스했었다...... 저런 방법이 있엇구나 그러구나
2번
int cancelCount = 0;
for(int i = 0; i <rowCount; i++){
for(int j = 0; j < colCount; j++){
Seat current = seats[i][j];
if(current.isOccupied() && current.match(name)){ //현재 좌석이 빈좌석인지 확인을 안해줘서 틀림 에헿
seats[i][j].cancel();
cancelCount++;
}
}
}
return cancelCount;
2번은 틀린게 두가지 있는데, 처음에 current자료형을 Seat이 아니라 String(...)으로 해줘서 틀렸고, 두번째는 이름을 비교해주기 전에 좌석이 예약된 좌석인지 확인을 안해줘서 틀렸다. 이게 필요할까 싶긴 하지만 답이 그렇다면 그런거겠지.....
크흑 나는 왜 답을 보지 않으면 답이 없는걸까 이런나라도 취업할수 있는걸까 흑흑
그러니까 공부하는거다 중생아 복학 한달남았으니까 공부하자
'210525~220812' 카테고리의 다른 글
#47 7월 후기 210803 (0) | 2021.08.03 |
---|---|
#46 오늘은 210729 (0) | 2021.07.29 |
#44 zzzzzzzzzzㅋㅋㅋㅋㅋㅋ 210725 (0) | 2021.07.25 |
#43 HashMap 복습3 210722 (0) | 2021.07.23 |
#42 3학년 2학기 시간표 210719 (0) | 2021.07.20 |