basic/java 실습

day06 연습문제 - 다차원배열, 배열

못지(Motji) 2021. 5. 1. 00:26

day06. 29일 목요일에 배운 배열이 너무...헷갈린다 아직 선생님이 초반에 주신 문제도 다 못품... 다풀고 잘수 있을런지....우선 도오전

 

문제4. 한층에 5호씩 있는 3층짜리 아파트가 있다. > 3행 5열
1) 배열로 만들어서 각 호마다 관리비를 입력받고, 전체 출력해보세요.

2) 층별 관리비 평균을 구해서 출력해보세요.

3) 전체 관리비 평균을 구해서 출력해보세요.


4) 103호와 203호의 관리비가 서로 바뀌었다고해요, 교환해주세요. 

중간에 잠시 값저장해둘 변수 만들어 놓고 값 교환해주기


5) 전체 관리비 평균보다 적게 사용한 호수들을 출력해보세요. 

4-1에서 구해준 전체 관리비 평균과 전체호수들의 관리비를 비교해서 호수 출력

동호수는 배열(0,0)이 > 101호 임으로 지역변수 i,j에 +1씩 넣어줘서 출력해주면 됨.

for문 안에서만 i,j 변수가 유효함으로 for문 안에서 비교한후 바로 출력해주기


6) 관리비를 가장 적게 사용한 호수와 가장 많이 사용한 호수를 출력해보세요.

첫번째 풀이.

관리비 제일 큰값, 작은값 넣어둘 max,min 변수를 생성하고,

동호수 찾는건 따로 for문 찾아서 출력해주기.

근데 아래에서 많이쓴곳 동호수 찾는건 출력이 안된다. 왜일까;

제일 적게쓴곳 동호수 찾는거랑 동일한데(변수만 다르고) 뭐가 문제인지 모르겠음;우선 보류

두번째 풀이.

큰값찾을때 동호수 넣어둘 변수를 외부에 만들어놓은 방법.

대신 제일 작은값이 0행0열 맨처음 넣은 값일때는 따로 동호수가 저장되지 않는다.(자기자신이 제일 작아 min 비교하는 if문이 한번도 실행되지 않기 때문에)

외부에 if문 코드를 따로 작성했음

첫번째 풀이가 변수도 최소한으로 쓰고 보기에 더 깔끔한것 같다.

근데 관리비 제일 많이쓴 동호수 찾는 출력이 안되서(코드에는 문제가 없는데,,,,,) 이유를 찾으면 다시 수정하러 와야지


7) 심화: 관리비 적게 나온 순으로 정렬해보세요. 

도저히 머리가 돌아가지 않아 우선 passsssss