## 문제

### 요청 사항 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()

 

'코드테스트' 카테고리의 다른 글

파이토치_2  (1) 2023.10.31
파이토치_1  (1) 2023.10.31

+ Recent posts