💬 오늘의 공부시간 PM 10:20 ~ AM 2:00

문제풀이를 하고 나면 조금 지치는 느낌이 들면서도 뭔가 조금씩 퍼즐이 짜맞춰져 지는 그런 느낌이 들어서 하고 나면 뿌듯하다
근데 왜 오지게 이해 안가는 건 안가냐고 ㅠㅠ
언어의 문제인지, 수학의 문제인지 고것이 알고싶다...

🔥 2주차 todo 리스트 (5/8~5/14)

파이썬 기초문풀4
파이썬 기초문풀5


파이썬 중급1
파이썬 중급2
파이썬 중급3
파이썬 중급5~6
파이썬 중급7
파이썬 중급8~9
파이썬 중급문풀1~2
파이썬 중급문풀3
파이썬 중급문풀4
📝 weekly 데이터 사이언스 스쿨 퀴즈

💻 핵심 내용 정리

🏅 기초문제풀이

실습_01

난수를  이용해서  홀/짝  게임을  만들어보자.

import random

comNum = random.randint(1, 2)
userSelect = int(input('홀/짝 선택: 1,홀 \t 2.짝'))

if comNum == 1 and userSelect == 1:
    print('빙고!! 홀수')
elif comNum == 2 and userSelect == 2:
    print('빙고!! 짝수')
elif comNum == 1 and userSelect == 2:
    print('실패!! 홀수!!')
elif comNum == 2 and userSelect == 1:
    print('실패!! 짝수!!')

실습_02

난수를  이용해서  가위, 바위, 보  게임을  만들어보자.

import random

comNumber = random.randint(1, 3)
userNumber = int(input('가위, 바위, 보 선택 : 1.가위 \t 2.바위 \t 3.보'))

if (comNumber == 1 and userNumber == 2) or (comNumber == 2 and userNumber == 3) or \
        (comNumber == 3 and userNumber == 1):
    print('컴퓨터ㅣ 패, 유저: 승')
elif comNumber == userNumber:
    print('무승부')
else:
    print('컴퓨터: 승, 유저: 패')


print('컴퓨터: {}, 유저: {}'.format(comNumber, userNumber))

실습_03

아래  요금표를  참고해서  상수도  요금  계산기를  만들어보자.

part = int(input('업종 선택(1.가정용 2.대중탕용 3.공업용) : '))
userWater = int(input('사용량 입력: '))
unitPrice = 0

if part == 1:
    unitPrice = 540

elif part == 2:
    if userWater <= 50:
        unitPrice = 820
    elif userWater > 50 and userWater <= 300:
        unitPrice = 1920
    elif userWater > 300:
        unitPrice = 2400
elif part == 3:
    if userWater <= 500:
        unitPrice = 240
    else:
        unitPrice = 470

userPrice = userWater * unitPrice
userPriceFormated = format(int(userPrice), ',')  # 원단위 콤마찍기

print('=' * 36)
print('상수도 요금표')
print('-' * 36)
print('사용량 \t : \t 요금')
userPrice = userWater * unitPrice
print('{} \t : \t {}원'.format(userWater, userPriceFormated))
print('=' * 36)

실습_04

미세먼지  비상저감조치로  차량  운행제한  프로그램을  다음  내용에  맞게  만들어  보자.

미세먼지  측정  수치가  150이하면  차량  5부제  실시
미세먼지  측정  수치가  150을  초과하면  차량  2부제  실시
차량  2부제를  실시하더라도  영업용차량은  5부제  실시
미세먼지 수치, 차량 종류, 차량 번호를 입력하면 운행 가능 여부 출력

import datetime

today = datetime.datetime.today()
day = today.day

limitDust = 150
dustNum = int(input('미세먼지 수치 입력: '))
carType = int(input('차량 종류 선택 : 1,승용차 2. 영업용차'))
carNumber = int(input('차량 번호 입력 : '))

print('-' * 36)
print(today)
print('-' * 36)

if dustNum > limitDust and carType == 1:
    if (day % 2) ==(carNumber % 2):
        print('차량 2부제 적용')
        print('차량 2부제로 금일 운행제한 대상 차량입니다.')
    else:
        print('금일 운행 가능합니다.')
if dustNum > limitDust and carType == 2:
    if (day % 5) ==(carNumber % 5):
        print('차량 5부제 적용')
        print('차량 5부제로 금일 운행제한 대상 차량입니다.')
    else:
        print('금일 운행 가능합니다.')

if dustNum <= limitDust:
    if (day % 5) == (carNumber % 5):
        print('차량 5부제 적용')
        print('차량 5부제로 금일 운행제한 대상 차량입니다.')
    else:
        print('금일 운행 가능합니다.')
print('-' * 36)

실습_05

PC에서  난수를  발생하면  사용자가  맞추는  게임을  만들어보자.
PC가 난수(1~1000)를 발생하면 사용자가 숫자(정수)를 입력한다.
사용자가  난수를  맞추면  게임이  종료된다.
만약, 못  맞추게  되면  난수와  사용자  숫자의  크고  작음을  출력한  후 사용자한테  다시  기회를  준다.
최종적으로  사용자가  시도한  횟수를  출력한다.

import random

rNum = random.randint(1, 100)
tryCount = 0
gameFlag = True

while gameFlag:
    tryCount += 1
    pNum = int(input('1에서 1,000까지의 정수 입력 : '))

    if rNum == pNum:
        print('빙고!!')
        gameFlag = False
    else:
        if rNum > pNum:
            print('난수가 크다!')
        else:
            print('난수가 작다!')

print('난수: {}, 시도 횟수: {}'.format(rNum, tryCount))

실습_06

실내온도를  입력하면  스마트에어컨  상태가  자동으로  설정되는  프로그램을  만들어보자

innerTemp = int(input('실내온도 입력 : '))

if innerTemp <= 18:
    print('에어컨 상태 : off')
elif innerTemp > 18 and innerTemp <= 22:
    print('에어컨 상태 : 매우 약')
elif innerTemp > 22 and innerTemp <= 24:
    print('에어컨 상태 : 약')
elif innerTemp > 24 and innerTemp <= 26:
    print('에어컨 상태 : 중')
elif innerTemp > 26 and innerTemp <= 28:
    print('에어컨 상태 : 강')
elif innerTemp > 28:
    print('에어컨 상태 : 매우 강')

실습_07

1부터  100까지  정수  중  십의자리와  일의자리에  대해  각각  홀/짝수를 
구분하는 프로그램을  만들어보자.

for i in range(1, 101):
    if i <= 9:
        if i % 2 == 0:
            print('[{}]: 짝수!'.format(i))
        else:
            print('[{}]: 홀수!'.format(i))
    else:
        num10 = i // 10
        num1 = i % 10

        result10 = ''
        if num10 % 2 == 0:
            result10 = '짝수'
        else:
            result10 = '홀수'

        result1 = '0'
        if num1 != 0:
            if num1 % 2 == 0:
                result1 = '짝수'
            else:
                result1 = '홀수'

        print('[{}] 십의 자리: {}, 일의 자리: {}'.format(i, result10, result1))

실습_08

1부터  사용자가  입력한  정수까지의  합, 홀수의  합, 짝수의  합 
그리고  팩토리얼을 출력하는  프로그램을  만들어보자

fNum = int(input('정수 입력 : '))

addSum = 0   # 합
for i in range(1, (fNum + 1)):
    addSum += i

addSumformated = format(addSum, ',') # 3자리마다 콤마찍기
print('합 결과 : {}'.format(addSumformated))

oddSum = 0   # 홀수
for i in range(1, (fNum + 1)):
    if i % 2 != 0:
        oddSum += i

oddSumformated = format(oddSum, ',') # 3자리마다 콤마찍기
print('홀수 합 결과 : {}'.format(oddSumformated))

evenSum = 0   # 짝수
for i in range(1, (fNum + 1)):
    if i % 2 == 0:
        evenSum += i

evenSumformated = format(evenSum, ',') # 3자리마다 콤마찍기
print('짝수 합 결과 : {}'.format(evenSumformated))

factorialResult = 1   # 팩토리얼
for i in range(1, (fNum + 1)):
    factorialResult *= i

factorialResultformated = format(factorialResult, ',') # 3자리마다 콤마찍기
print('팩토리얼 결과 : {}'.format(factorialResultformated))

실습_09

*’를  이용해서  다음과  같이  다양한  모양을  출력해보자.

# 01 좌측정렬
for i in range(1,6):
    for j in range(i):
        print('*', end='')
    print()

# 02 우측정렬
for i1 in range(1,6):
    for i2 in range(6 - i1 - 1):
        print(' ', end='')
    for i3 in range(i1):
        print('*', end='')
    print()
    
# 03 반전 좌측 정렬
for i in range(5, 0, -1):
    for j in range(i):
        print('*', end='')
    print()
    
# 03 반전 우측 정렬
for i in range(5, 0, -1):
    for j in range(5 - i):
        print(' ', end='')
    for j in range(i):
        print('*', end='')
    print()
    
# 04 ▶
for i in range(1, 10):
    if i < 5:
        for j in range(i):
            print('*', end='')
    else:
        for j in range(10 - i):
                print('*', end='')
    print()
    
# 05 \
for i in range(1, 6):         # 행
    for j in range(1, 6):    # 열
        if j == i:
            print('*', end='')
        else:
            print(' ', end='')

    print()

실습_10

집  앞  버스  정류장에서  학교까지  가는  버스  A, B, C 의  운행정보가  다음과  같을  때, 2대  이상의  버스가  정차하는  시간대를  출력해보자.
• 버스  A, B 운행  정보
- 오전  6시  첫차  : 오후  23시  운행  종료 
- 버스A : 15분  간격  운행
- 버스B : 13분  간격  운영

• 버스  C 운행  정보
- 620분  첫차  : 오후  22시  운행  종료 
- 버스C : 8분  간격  운행


busA = 15
busB = 13
busC = 8

totalMin = 60 * 17
for i in range(totalMin +1):
    if i < 20 or i > (totalMin - 60):
        if i % busA == 0 and i % busB == 0:
            print('버스A와 버스B 동시 정차!', end='')
            hour = 6 + i // 60
            min = i % 60
            print('\t{}:{}'.format(hour, min))
    else:
        if i % busA == 0 and i % busB == 0:
            print('버스A와 버스B 동시 정차!', end='')
            hour = 6 + i // 60
            min = i % 60
            print('\t{}:{}'.format(hour, min))
        elif i % busA == 0 and i % busC== 0:
            print('버스A와 버스C 동시 정차!', end='')
            hour = 6 + i // 60
            min = i % 60
            print('\t{}:{}'.format(hour, min))
        elif i % busB == 0 and i % busC == 0:
            print('버스B와 버스C 동시 정차!', end='')
            hour = 6 + i // 60
            min = i % 60
            print('\t{}:{}'.format(hour, min))

실습_11

톱니가  각각  n1개와  n2개의  톱니바퀴가  서로  맞물려  회전할  때, 회전을  시작한  후  처음 맞물린  톱니가  최초로  다시  만나게  될  때까지의  톱니의  수와  각각의  바퀴  회전수를 출력해보자.(, n2는  n1보다  크다.)

gearATCnt = int(input('GearA 톱니수 입력 : '))
gearBTCnt = int(input('GearB 톱니수 입력 : '))

gearA = 0
gearB = 0
leastNum = 0

flag = True
while flag:

    if gearA != 0:
        if gearA != leastNum:
            gearA += gearATCnt
        else:
            flag = False
    else:
        gearA += gearATCnt

    if gearB != 0 and gearB % gearATCnt == 0:   # 최소공배수
        leastNum = gearB
    else:
        gearB += gearBTCnt

print('최초 만나는 톱니수(최소공배수): {}톱니'.format(leastNum))
print('gearA 회전수: {}회전'.format(int(leastNum / gearATCnt)))
print('gearB 회전수: {}회전'.format(int(leastNum / gearBTCnt)))

실습_12

윤년  계산기를  만들어보자.
윤년  조건
- 연도가  4로  나누어떨어지고  100으로  나누어떨어지지  않으면  윤년이다. - 또는  연도가  400으로  나누어떨어지면  윤년이다.

year = int(input('연도 입력 : '))

if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print('{}년 : 윤년!!'.format(year))
else:
    print('{}년 : 평년!!'.format(year))


# 자동 계산 출력
for year in range(2021, (2021+101)):
    if (year % 4 == 0 and year % 100 != 0) or (year % 400  == 0 ):
        print('{}년 : 윤년!!'.format(year))
else:
    print('{}년 : 평년!!'.format(year))    

💡 오늘을 마무리하면서 ...

오늘 하루도 지켰다!!
내일도 열심히 하잣!!
근데 나는 언제 아웃풋하냐 ㅠㅠ
응용1도 못해 ㅠㅠ


😃 Busy Study _ 새벽반 PM 10:00 ~ AM 2:30

여러분 화이팅!! 우리 모두 다 잘 될거예요!

profile
늦깎이 DA/DS 취준생, 이곳은 스터디노트 겸 성장기록장(소통환영이요💜)

0개의 댓글