## 문제
### 요청 사항 1. 전체 고객 수
---
#### ✅ 구현 조건
- 고객 정보에 존재 하는 전체 고객의 수를 확인해 주세요.
#### ✅ 정답 예시
```json
// problem_1.json
{
"total": 100
}
```
### 요청 사항 2. 휴면 고객 리스트
---
#### ✅ 구현 조건
- 현재 고객 상태(status)가 휴면(dormant)인 고객을 대상으로 이벤트를 기획하고 있습니다. 휴면 고객 ID 리스트를 출력해 주세요.
#### ✅ 제약 사항
- 고객 ID를 기준으로 오름차순 정렬하여 출력합니다.
#### ✅ 정답 예시
```json
// problem_2.json
[
100,
101,
104,
106,
110,
...
]
```
import os
import json
class CustomerManager:
def __init__(self, input_file_path, output_file_path):
self.input_file_path = input_file_path
self.output_file_path = output_file_path
if not os.path.exists(output_file_path):
os.makedirs(output_file_path)
with open(os.path.join(input_file_path, 'customer.json'), 'r', encoding='utf-8') as file:
self.customers = json.load(file)
def count_total_customers(self, output_file='problem_1.json'):
total_customers = len(self.customers)
print(f"전체 고객의 수: {total_customers}")
self._write_to_json({'total': total_customers}, output_file)
def check_status_customers(self, output_file='problem_2.json'):
dormant_customers = [customer['customer_id'] for customer in self.customers if customer['status'] == 'dormant']
dormant_customers.sort()
print("휴먼 상태의 고객 ID 리스트:")
for customer_id in dormant_customers:
print(customer_id)
self._write_to_json(dormant_customers, output_file)
def _write_to_json(self, data, file_name):
with open(os.path.join(self.output_file_path, file_name), 'w', encoding='utf-8') as file:
json.dump(data, file, ensure_ascii=False, indent=4)
if __name__ == '__main__':
manager = CustomerManager(input_file_path='./data/input', output_file_path='./data/output')
manager.count_total_customers()
manager.check_status_customers()