TIL_230821

Sol Lee·2023년 9월 19일
0

오늘 한 일

파이썬 문법 강의 듣기

VScode에서 가상환경 생성하기(맥)

# 1. 터미널에 아래명령어 입력
% python -m venv venv(폴더명)

# 2. 입력한 폴더명으로 가상환경 폴더가 생겼는지 확인

# 3. 아래 명령어 입력하여 가상환경 활성화. (venv)가 터미널라인에 표시되는지 확인
% source venv/bin/activate
(venv) %

파이썬 개인 과제 - 1. Up Down 게임 만들기

  1. 플레이어와 컴퓨터가 참여하는 업다운 게임을 만드세요.
  2. 프로그램은 다음과 같은 기능을 포함해야 합니다.
    • 컴퓨터는 1부터 100 사이의 랜덤한 숫자를 생성합니다.
    • 플레이어는 숫자를 입력하고, 입력한 숫자와 컴퓨터의 숫자를 비교하여 "업" 또는 "다운" 힌트를 제공합니다.
    • 플레이어가 컴퓨터의 숫자를 정확히 맞히면 시도한 횟수를 알려줍니다.
    • 플레이어가 숫자를 맞힐 때까지 위 과정을 반복합니다.

추가 도전 과제:

  • 플레이어가 입력한 숫자가 범위를 벗어날 경우, 적절한 안내 메시지를 출력하여 유효한 범위 내의 숫자를 입력하도록 유도하세요.
  • 플레이어가 게임을 반복하고 싶을 경우, 게임 재시작 여부를 묻고 그에 따라 게임을 초기화하거나 종료하는 기능을 추가하세요.
  • 게임이 종료될 때 플레이어의 최고 시도 횟수를 기록하고, 다음 게임에서 이를 표시하는 기능을 구현하세요.

문제 1번의 추가 도전 과제 3번 빼고는 구현한 것 같다. 문제 3 까지 다 풀어보고 시간이 남으면 수정해 봐야겠다.

import random

end_game = False


def check_isdigit(number):
    """ 추가 도전 과제 - 1:  범위 내의 숫자 확인 """
    if not number.isdigit():
        print("Write the NUMBER !!")
        return False
    if int(number) > 100 or int(number) < 1:
        print("Enter a number between 1 and 100.")
    else:
        return True


def ask_end():
    """ 추가 도전 과제 -2: 재시작 확인 """
    end = input("Retry? ")
    if end in ["Yes", "yes", "YES"]:
        return False
    if end in ["No", "NO", "no"]:
        return True
    else:
        print('Yes or No')
        return ask_end()


def start_game():
    """ 숫자 게임"""
    random_number = random.randint(1, 100)
    count = 0

    print("START!")

    while True:
        count += 1
        answer = input()
        if check_isdigit(answer):
            answer = int(answer)
            if answer == random_number:
                print(f'You WIN! score: {count}')
                end = ask_end()
                if end:
                    break
                else:
                    return start_game()
            elif answer > random_number:
                print("Down")
            elif answer < random_number:
                print("UP")
        else:
            continue


while not end_game:
    start = input("start? Yes/Yes ")
    if start in ["Yes", "yes", "YES"]:
        start_game()
        end_game = True
    else:
        print("Say Yes.")
        continue

프로그래머스 코딩테스트 입문 문제 풀이

# 중복된 숫자 개수
# 정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, 
# array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요.

# 내 답변
def solution(array, n):
    answer = 0
    for i in array:
        if i == n:
            answer += 1

    return answer

# 다른 사람 답변
def solution(array, n):
    return array.count(n)

## str(array).count(str(n)) 은 오답이 떴음 -> n이 1일 경우 11도 카운트하기 때문에

----------------------------------------------------------------

# 머쓱이보다 키 큰 사람
# 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 
# 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요.

# 내 답변
def solution(array, height):
    answer = 0
    arr = sorted(array)

    for i in arr:
        if i > height:
            answer += 1

    return answer

# 다른 사람 답변
def solution(array, height):
    array.append(height)
    array.sort(reverse=True)
    return array.index(height)
profile
직업: 개발자가 되고 싶은 오레오 집사

0개의 댓글