728x90
반응형
(문제)
월별 수입과 월별 지출 금액을 각각 입력받고, 수입에서 지출을 뺀 잔여 금액을 기준으로 소비 등급을 매긴다.
소비 등급은 잔여 금액이 월별 수입의 30% 이상이면 1급, 20% 이상이면 2등급, 10% 이상이면 3등급으로, 그외는 4등급으로 매겨진다. 월별 소비 등급을 리스트에 저장하여 출력하고, 소비 등급이 1급인 달을 모두 출력하라.
(단, 월별 수입은 일정하게 고정되어 있다.)
[입력 예시1]
50000 (월별 수입)
40000 (월별 지출)
14000 (월별 지출)
22000 ...
7000
40000
18000
[출력 예시1]
[2, 1, 1, 1, 2, 1] → 소비등급 리스트
2 → 2월
3 → 3월
4 → ...
6
[입력 예시2]
10000
9500
10000
8000
9900
4000
9000
[출력 예시2]
[4, 4, 2, 4, 1, 3]
5
(방법)
문제의 조건이 어느게 수입이고 어떤게 지출인지 구분이 없어서
다음과 같이 변경했습니다.
입력 받을때 수입,지출을 동시 받음.
rank = []
while True:
n = input('월 수입,지출(예:수입,지출) : ')
if n == '': # 공백 이볅이면 종료
break
tmp = n.split(',') # tmp[0] = 수입, tmp[1] = 지출
expense_p = (int(tmp[0]) - int(tmp[1])) / int(tmp[0]) * 100 # 잔액이 월별수일의 몇 % 인지 계산
if expense_p >= 30:
rank.append(1)
elif expense_p < 30 and expense_p >= 20:
rank.append(2)
elif expense_p < 20 and expense_p >= 10:
rank.append(3)
else:
rank.append(4)
#print(tmp, (int(tmp[0]) - int(tmp[1])), expense_p, rank[-1]) # 상태를 확인하기 위한 코드. 비고(#) 처리하면 됩니다.
print(rank)
for i in range(len(rank)): # 1등급 인 경우만 출력
if rank[i] == 1:
print(i+1)
중간의 print문으로 모니터링 한 결과

(추가수정)
월별 수입은 맨 처음에 한번 입력하면
나머지는 계속 동일한 월별 수입으로 가정하고 달라지는건 월별 지출
rank = []
cnt = 0
income = 0 # 수입
while True:
cnt += 1
n = input()
if n == '': # 공백 이볅이면 종료
break
n = int(n)
if cnt == 1:
income = n
else:
expense = n
expense_p = (income - expense) / income * 100 # 잔액이 월별수일의 몇 % 인지 계산
if expense_p >= 30:
rank.append(1)
elif expense_p < 30 and expense_p >= 20:
rank.append(2)
elif expense_p < 20 and expense_p >= 10:
rank.append(3)
else:
rank.append(4)
# print(tmp, (income - expense), expense_p, rank[-1]) # 상태를 확인하기 위한 코드. 비고(#) 처리하면 됩니다.
print(rank)
for i in range(len(rank)): # 1등급 인 경우만 출력
if rank[i] == 1:
print(i+1)

상반기 즉 6개월로 1개 수입과 6개의 지출로 계산.
rank = []
cnt = 0
income = 0 # 수입
income = int(input())
for i in range(6):
n = int(input())
expense = n
expense_p = (income - expense) / income * 100 # 잔액이 월별수일의 몇 % 인지 계산
if expense_p >= 30:
rank.append(1)
elif expense_p < 30 and expense_p >= 20:
rank.append(2)
elif expense_p < 20 and expense_p >= 10:
rank.append(3)
else:
rank.append(4)
# print(tmp, (income - expense), expense_p, rank[-1]) # 상태를 확인하기 위한 코드. 비고(#) 처리하면 됩니다.
print(rank)
for i in range(len(rank)): # 1등급 인 경우만 출력
if rank[i] == 1:
print(i+1)

728x90
반응형
'프로그램' 카테고리의 다른 글
| [파이썬] 문제 : 텍스트 파일에서 space, Tab 문자 개수 세기 (0) | 2022.11.26 |
|---|---|
| [파이썬] 문제 : 요일 찾기 (0) | 2022.11.26 |
| [파이썬] 문제 : 사각형 넓이 구해 작은 넓이, 큰 넓이 구하기 (0) | 2022.11.26 |
| [윈도우] Edge브라우저에서 400 Bad Request 에러 (0) | 2022.11.26 |
| [파이썬] 문제 : 다른 프로그램 실행 (0) | 2022.11.25 |
댓글