기초 수학
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 = ['그랜저', '소나타', '티볼리', '카니발','렉스턴']
n = 0
while n < len(cars):
print(cars[n])
n += 1
flag = True
n = 0
while flag:
print(cars[n])
n += 1
if n == len(cars):
flag = False
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}')