230920_스터디노트

Sihyun Kim·2023년 9월 20일

기초 수학

27~28_조합

  • n개에서 r개를 택하는 경우의 수
    + 순열: 순서 상관있게 r개 선택
    + 조합: 순서 상관없이 r개 선택
numN = int(input('n 입력: '))
numR = int(input('r 입력: '))

resultP = 1
resultR = 1
resultC = 1

for i in range(numN, (numN-numR), -1):
    resultP *= i

for l in range(numR, 0, -1):
    resultR *= l

resultC = int(resultP / resultR)
print(resultC)

29~30_확률

  • 모든 사건에서 특정 사건이 일어날 수 있는 수를 나타낸 것
    + 모든 사건: 표본 공간
    • 특정 사건: 사건
  • 조합을 이용해서 확률을 알아낼 수 있다
def proFun():

    numN = int(input('numN 입력: '))
    numR = int(input('numR 입력: '))

    resultP = 1; resultR = 1; resultC = 1

    for i in range(numN, (numN-numR), -1):
        resultP *= i

    for i in range(numR, 0, -1):
        resultR *= i

    resultC = int(resultP / resultR)

    print(resultC)

    return resultC

sample = proFun()
event1 = proFun()
event2 = proFun()

prob = ((event1 * event2) / sample) * 100
percentage = round(prob, 2)

print(f'{percentage}%')
  • 함수 정의!! 그 생각을 못하고 노가다로 복붙하다 아차 싶었네 😒

자료 구조

07_리스트와 while문 (01)

cars = ['그랜저', '소나타', '티볼리', '카니발','렉스턴']

#예시 1

n = 0
while n < len(cars):
    print(cars[n])
    n += 1

#예시 2

flag = True
n = 0
while flag:
    print(cars[n])
    n += 1

    if n == len(cars):
        flag = False

#예시 3

n = 0
while True:
    print(cars[n])
    n += 1

    if n == len(cars):
        break
studentCnts = [[1, 18], [2, 19], [3, 23], [4, 21], [5, 20], [6, 22], [7, 17]]

n = 0
sum = 0

flag = True
while flag:
    classNo = studentCnts[n][0]
    cnt = studentCnts[n][1]
    print(f'{classNo}학급 학생수: {cnt}명')

    sum += cnt
    n += 1

    if n == len(studentCnts):
        flag = False

avg = sum/len(studentCnts)

print(f'전체 학생 수: {sum}명')
print(f'평균 학생 수: {avg}명')

08_리스트와 while문 (02)

minScore = 60

scores = [['국어', 58], ['영어', 77], ['수학', 89], ['과학', 99], ['국사', 50]]

n = 0
while n < len(scores):

    if scores[n][1] < minScore:
        print(f'과락 과목: {scores[n][0]}, 점수: {scores[n][1]}')

    n += 1
  • 실습
minScore = 60

korScore = int(input('국어 점수 입력: '))
engScore = int(input('영어 점수 입력: '))
matScore = int(input('수학 점수 입력: '))
sciScore = int(input('과학 점수 입력: '))
hisScore = int(input('국사 점수 입력: '))

scores = [['국어', korScore], ['영어', engScore], ['수학', matScore], ['과학', sciScore], ['국사', hisScore]]

n = 0
while n < len(scores):

    if scores[n][1] < minScore:
        print(f'과락 과목: {scores[n][0]}, 점수: {scores[n][1]}')

    n += 1
  • 실습
studentCnts = [[1, 18], [2, 19], [3, 23], [4, 21], [5, 20], [6, 22], [7, 17]]

minClassNo = 0 ; maxClassNo = 0
minCnt = 0; maxCnt = 0

n = 0

while n < len(studentCnts):

   if n == 0:
       minCnt = studentCnts[n][1]; maxCnt = studentCnts[n][1]
       minClassNo = studentCnts[n][0]; maxClassNo = studentCnts[n][0]

   if studentCnts[n][1] < minCnt:
       minClassNo = studentCnts[n][0]
       minCnt = studentCnts[n][1]

   elif studentCnts[n][1] > maxCnt:
       maxClassNo = studentCnts[n][0]
       maxCnt = studentCnts[n][1]

   n += 1

print(f'가장 학생수가 적은 학급: {minClassNo}학급, {minCnt}명')
print(f'가장 학생수가 많은 학급: {maxClassNo}학급, {maxCnt}명')

09_enumerate()함수

sports = ['테니스', '농구', '마라톤', '수영', '사격']

for i in range(len(sports)):
    print(f'{i}: {sports[i]}')

for idx, value in enumerate(sports):
    print(f'{idx}: {value}')
  • 실습
sports = ['테니스', '농구', '마라톤', '수영', '사격']

userFavorite = input('가장 좋아하는 스포츠 입력: ')
favoriteIdx = 0

for idx, value in enumerate(sports):
    if value == userFavorite:
        favoriteIdx = idx + 1

print(f'가장 좋아하는 {userFavorite}{favoriteIdx}번째에 있습니다')
  • 실습
userStr = input('메세지를 입력해주세요: ')
cnt = 0

for idx, value in enumerate(userStr):
    if value == ' ':
        cnt += 1

print(f'공백 개수: {cnt}')
profile
문과이과예체능통합형인재

0개의 댓글