211015 알고리즘

이은택·2021년 10월 15일
0

알고리즘

목록 보기
7/15
post-thumbnail

코드잇 파이썬 기초문제


숫자 맞히기 게임

import random

# 코드를 작성하세요.
answer = random.randint(1,20) 📌
print(answer)
chance = 4
count = 0
while 0 < chance :
    print("기회가 {}번 남았습니다. 1-20 사이의 숫자를 맞혀 보세요: ".format(chance)) 📌
    guess_what = input() 📌
    guess_what = int(guess_what)
    chance -= 1
    count += 1
    if chance == 0: 📌
        print("아쉽습니다. 정답은 {}입니다.".format(answer)) 
    elif guess_what == answer: 📌
        print("축하합니다. {}번 만에 숫자를 맞히셨습니다.".format(count)) 
        break
    elif guess_what < answer:
        print("Up")
    else:
        print("Down")
    

개선할 부분

  • 📌 변하지 않는 상수의 변수는 대문자로! answer 대신에 ANSWER로 대체
  • 📌📌print 문구와 input() 부분을 따로 나누지말고 input("문구")로 대체
  • 📌📌 정해진 횟수 안에 답을 맞출 경우와 못 맞출 경우의 조건을 while루프 안에 둬서 매번 돌리지 말고 while루프 밖에다 둠으로써 연산량 줄일것
import random

# 코드를 작성하세요.
ANSWER = random.randint(1,20)
print(ANSWER)
chance = 4
count = 0
guess_what = 0 # while루프를 돌리기 위한 임이의 숫자
while ANSWER != guess_what and 0 < chance :
    guess_what = input("기회가 {}번 남았습니다. 1-20 사이의 숫자를 맞혀 보세요: ".format(chance))
    guess_what = int(guess_what)
    chance -= 1
    count += 1
    
    if guess_what < ANSWER:
        print("Up")
    elif guess_what > ANSWER:
        print("Down")
if chance == 0:
    print("아쉽습니다. 정답은 {}입니다.".format(ANSWER))
elif guess_what == ANSWER:
    print("축하합니다. {}번 만에 숫자를 맞히셨습니다.".format(count))
        

코딩에 빠진 닭

count_day = 0
sales = open("data/chicken.txt","r")
total_sales = 0
for sale in sales:
    total_sales += int(sale.split(":")[1].strip())📌
    count_day += 1
sales.close()
average_daily_sales = total_sales / count_day
print(average_daily_sales)

개선할 부분

  • 읽고 있는 파일의 줄에 공백이 있을 수도 있고 없을 수도 있는데 이부분을 고려 하지 못함 따라서 strip()을 추가한 int(sale.strip().split(":")[1].strip())로 대체
count_day = 0
sales = open("data/chicken.txt","r")
total_sales = 0
for sale in sales:
    total_sales += int(sale.strip().split(":")[1].strip())
    count_day += 1
sales.close()
average_daily_sales = total_sales / count_day
print(average_daily_sales)
profile
도전!

0개의 댓글