Skip to content

KooSuYeon/AI_bootcamp_tasks

Repository files navigation

AI_bootcamp_tasks

RULE

  • PR 올린 후 merge

First Week

코드 구현 사항 참고 PR : #1


1. 숫자 맞추기 게임 (guess_number_game.py)

  • 도전 과제 진행 여부
문제 설명
# GOAL
이 과제에서는 파이썬 프로그래밍 언어를 활용하여 숫자 맞추기 게임을 만드는 것이 목표입니다.
숫자 맞추기 게임은 컴퓨터가 생각한 숫자를 맞추는 게임으로,
플레이어는 숫자를 입력하고 컴퓨터가 생각한 숫자와 비교하여 “작다" 혹은 "크다" 힌트를 받아가며 숫자를 맞추는 게임입니다.
# RULE
1. 플레이어와 컴퓨터가 참여하는 숫자 맞추기 게임을 만드세요. 
2. 프로그램은 다음과 같은 기능을 포함해야 합니다.
- 컴퓨터는 1부터 10 사이의 랜덤한 숫자를 생성합니다.
- 플레이어는 숫자를 입력하고, 입력한 숫자가 큰지 작은지 힌트를 얻습니다.
- 플레이어가 숫자를 맞힐 때까지 위 과정을 반복합니다.

# 도전 과제
1. 플레이어가 입력한 숫자가 범위를 벗어날 경우, 적절한 안내 메시지를 출력하여 유효한 범위 내의 숫자를 입력하도록 유도하세요.
2. 플레이어가 게임을 반복하고 싶을 경우, 게임 재시작 여부를 묻고 그에 따라 게임을 초기화하거나 종료하는 기능을 추가하세요.
# EXAMPLE
1과 10 사이의 숫자를 하나 정했습니다.
이 숫자는 무엇일까요?
예상 숫자: 5
너무 큽니다. 다시 입력하세요.
예상 숫자: 4
너무 큽니다. 다시 입력하세요.
예상 숫자: 3
정답입니다!

Test Scenario
- Guess Number -> Restart & Create new Random Number -> Guess Number -> End Game
1과 10 사이의 숫자를 하나 정했습니다.
이 숫자는 무엇일까요?
예상 숫자: 2
너무 큽니다. 다시 입력하세요.
예상 숫자: 1
정답입니다!
종료를 원한다면 z를 입력하고 재시작을 원한다면 r을 입력해주세요 >>> r
1과 10 사이의 숫자를 하나 정했습니다.
이 숫자는 무엇일까요?
예상 숫자: 1
너무 작습니다. 다시 입력하세요.
예상 숫자: 5
너무 작습니다. 다시 입력하세요.
예상 숫자: 8
너무 작습니다. 다시 입력하세요.
예상 숫자: 9
너무 작습니다. 다시 입력하세요.
예상 숫자: 10
정답입니다!
종료를 원한다면 z를 입력하고 재시작을 원한다면 r을 입력해주세요 >>> z

2. 클래스와 함수 사용하기 (use_class_and_function.py)

  • 도전 과제 진행 여부
문제 설명
# GOAL
이름, 성별, 나이를 입력받고, 이를 출력하는 프로그램을 작성해주세요.
# RULE

클래스 정의
- `Person` 이라는 이름의 클래스를 정의한다.

멤버 변수
 - `name`, `gender`, `age`라는 멤버 변수를 설정한다.
    - 각 변수는 객체가 생성될 때 초기화된다.
        - `name`: 이름을 저장하는 변수 (문자열)
        - `gender`: 성별을 저장하는 변수 (문자열, "male" 또는 "female")
        - `age`: 나이를 저장하는 변수 (정수형)
생성자
- 생성자 `__init__`를 통해 객체 생성 시 이름, 성별, 나이를 초기화한다.
- 매개변수로 이름(`name`), 성별(`gender`), 나이(`age`)를 받는다.

정보를 출력하는 함수 `display()`
- `name`, `gender`, `age` 값을 출력하는 기능을 구현한다.
- 이름과 성별은 같은 행에 출력하고, 나이는 다음 행에 출력한다.

입력 및 출력
- 사용자로부터 나이, 이름, 성별을 각각 입력받는다.
- 입력된 값을 바탕으로 `Person` 객체를 생성하고, `display()` 함수를 통해 객체의 정보를 출력한다.

# 도전 과제
1. Person 클래스 생성자에서 사용자의 성별 입력값에 대한 유효성 검사를 추가해주세요.
2. Person 클래스에 나잇대에 맞는 인사 메시지를 출력할 수 있도록 greet() 함수를 추가해주세요.
# EXAMPLE
나이: 28
이름: 페이커
성별: male

이름: 페이커, 성별: male
나이: 28

Test Scenario
- Insert age. name, wrong gender -> -> Insert age. name, wrong gender -> Insert age. name, right gender
나이: 28
이름: 페이커
성별: 남성
잘못된 성별을 입력하셨습니다. 'male' 또는 'female'을 입력하세요.
성별: 남성
잘못된 성별을 입력하셨습니다. 'male' 또는 'female'을 입력하세요.
성별: male
이름: 페이커, 성별: male
나이: 28

3. Python 라이브러리로 데이터 분석하기 (data_analysis.py)

  • 도전 과제 진행 여부
문제 설명
# GOAL
Python 라이브러리를 활용하여 주어진 데이터(.xlxs)를 분석 Quiz를 수행해주세요.
# RULE

1. Python 라이브러리 함수를 사용하여 엑셀 파일을 불러오고, DataFrame을 출력해주세요.
2. 각 경찰서(`관서명`)를 해당 구 이름으로 매핑하여 '구별'이라는 새로운 column을 생성하고, DataFrame을 출력해주세요.
    - 매칭되지 않는 경찰서명에 대해서는 기본값 `'구 없음'`을 할당합니다.
3. pivot_table 을 사용하여 관서별 데이터를 구별 데이터로 변경하고, 같은 구의 경우에는 sum을 적용하여 더해주세요. (index : 관서 이름 -> 구 이름)
4. 구 없음  행은 drop 을 활용하여 삭제해주세요.
5. 각 범죄 별로 검거율을 계산하고, 각 검거율 데이터 column을 DataFrame에 추가해주세요.
6. 필요없는 column을 del 을 사용하여 삭제해주세요.

강간(검거),
강도(검거),
살인(검거),
절도(검거),
폭력(검거),
소계(발생),
소계(검거)

7. DataFrame의 컬럼명을 rename 을 사용하여 변경해주세요.

'강간(발생)':'강간',
'강도(발생)':'강도',
'살인(발생)':'살인',
'절도(발생)':'절도',
'폭력(발생)':'폭력'

# 도전 과제
1. Python 라이브러리 함수를 사용하여 인구 데이터(pop_kor.csv) 파일을 불러오고, DataFrame을 출력해주세요.
    - Quiz에서 수행한 DataFrame의 구별 index를 기준으로 merge를 할 것이므로, index를 셋팅해서 불러와 주세요.
2. join 을 사용하여 Quiz에서 수행한 DataFrame과 인구 데이터 DataFrame을 merge하고, DataFrame을 출력해주세요.
3. 새롭게 merge 된 DataFrame에서 검거율 기준으로 오름차순 정렬 후, DataFrame을 출력해주세요.
# EXAMPLE
	강간	강도	살인	절도	폭력	강간검거율	강도검거율	살인검거율	절도검거율	폭력검거율	검거율
구별											
강남구	449	21	13	3850	4284	77.728285	85.714286	76.923077	42.857143	86.484594	66.519670
강동구	156	6	4	2366	2712	78.846154	100.000000	75.000000	33.347422	82.890855	60.469108

Result
스크린샷 2024-10-08 오후 3 05 29

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published