<선택구조>
예제09
두 수 중 큰 수 찾기
사용자로부터 입력 받은 두 수를 변수 a, b에 저장하고, a 값이 b 값보다 크면 a 값을 출력하고, 그렇지 않으면 b 값을 출력한다.
분석과 풀이
사용자로부터 두 수를 변수 a,b에 저장 할려면 일단 사용자에게 변수
a = int(input("첫번 째 : ")) b = int(input("두번 째: ")) 로 저장하고
if 변수를 이용해 a 가 b보다 크면 a 를 출력하고 그렇지 않으면 b를 출력한다.
정리
1. a = int(input("첫번째 : ")) b = int(input("두번째 : "))
2. 만약 a가 b보다 더 크다면 가장 큰 수는 자연적으로 a가 된다.
if a > b:
print("더 큰 수는:", a)
3. 그렇지 않다면 자연스럽게 b가 더 큰값이므로 b를 출력하게한다.
else:
print("더 큰 수는:", b)
순서도

결과

예제10
양수, 0, 음수 판별하기
사용자로부터 입력 받은 수를 변수 a에 저장하고, a가 0보다 작으면 “음수”를, 그렇지 않고 0보다 크면 “양수”를, 그렇지 않으면 “0”을 출력한다.
분석과 풀이
사용자로부터 입력 받은 수를 변수 a에 저장하고, a가 0보다 작으면 “음수”를, 그렇지 않고 0보다 크면 “양수”를, 그렇지 않으면 “0”을 출력한다.
정리
1. 사용자에게 숫자 a를 입력 받는다 a= int(input("숫자를 입력해주세요 : "))
2. if a < 0 :
print("음수") a > 0보다 작을 때 음수라는 문구가 나오게 만든다
3. elif a == 0 : a 가 0이라면 0이 출력되게 한다
print("0")
4. else : 그렇지 않다면 a 는 0보다 크기 때문에 양수로 출력한다.
print("양수")
순서도
결과

예제11
세 수 중 가장 큰 수 찾기(1)
a가 b보다 크고 a가 c보다 크면 a가 가장 큰 수가 되고, a가 b보다 크고 a가 c보다 크지않으면 c가 가장 큰 수가 된다. a가 b보다 크지 않고 b가 c보다 크면 b가 가장 큰 수가 되고, a가 b보다 크지 않고 b가 c보다 크지 않으면 c가 가장 큰 수가 된다.
분석과 풀이
사용자로부터 숫자 a b c를 입력받고 누가 가장 큰 수인지 판별한다
1. a = int(input("첫번 째 숫자를 입력하시오 :"))
b = int(input("두번 째 숫자를 입력하시오 :"))
c = int(input("세번 째 숫자를 입력하시오 :"))
2. if else 문을 이용해 모든 변수들을 입력한다
a가 b보다 크고 a가 c보다 크면 a 는 가장 큰 수이다 만약 a가 c보다 작다면 c가 가장 큰수이다.
if a > b :
if a > c :
print("가장 큰 수는 %d" % a)
else :
print("가장 큰 수는 %d" % c)
3. else 를 추가한다 b > a 보다 클 경우를 입력해야 하기 때문에 b 가 a 보다 크고 b 가 c보다 크면 가장 큰 수는 c이다. 만약 그렇지 않다면 c가 가장 큰 수 이기 떄문에 c를 출력하는 코드를 만든다.
else :
if b > c :
print("가장 큰 수는 %d" % b)
else:
print("가장 큰 수는 %d" % c)
순서도

결과

예제12
세 수 중 가장 큰 수 찾기(2)
사용자로부터 첫 번째 수를 입력받아 max에 저장한다. 두 번째로 입력받은 수 a와 max를 비교하여 a가 max보다 크면 max에 a를 저장한다. 세 번째 수도 마찬가지 방법으로 수행한다. 결국 가장 큰 수가 max에 저장된다.
분석과 풀이
첫 번째 숫자 입력: 처음에 사용자가 입력한 숫자를 max 변수에 저장한다. 여기서는 첫 번째 숫자를 가장 큰 숫자라고 가정합니다.
두 번째 숫자 입력: 두 번째 숫자를 입력받아 a 변수에 저장한다.
비교: 두 번째 숫자가 첫 번째 숫자보다 크면, max를 두 번째 숫자로 업데이트한다
세 번째 숫자 입력: 세 번째 숫자를 입력받아 a 변수에 저장한다.
비교: 세 번째 숫자가 현재 max 값보다 크면, max를 세 번째 숫자로 업데이트한다.
출력: 최종적으로 가장 큰 숫자를 출력한다.
1. 사용자로 부터 max 라는 숫자를 입력 받는다.
max = int(input("첫번 째 : "))
a = int(input("두번 째 : "))
2. 사용 자로 부터 받은 a 가 만약 max 보다 클 경우 변수 max 에 a를 업데이트 한다.
if a > max :
max = a
3. 그 뒤 사용자에게 숫자 하나를 더 입력받아 a에 저장하고 현재 max에 a와 비교를 하면 가장 큰 수를 알 수 있다.
a = int(input("세번 째: : "))
if a > max :
max = a
4. 가장 큰 수를 출력한다
print("가장 큰 수 %d" % max)
순서도

결과

예제13
홀수, 짝수 판별하기
사용자로부터 입력받은 수를 2로 나누었을 때 나머지가 0이면 “짝수”, 나머지가 0이 아니면 “홀수”이다.
예를 들어 입력받은 수가 10이라면 2로 나누었을 때 나머지가 0이 된다. 따라서 10은 “짝수”가 된다. 만약 입력받은 수가 15라면 2로 나누었을 때 나머지가 1이 되어 0이 아니므로15는 “홀수”가 된다.
분석과 풀이
사용자에게 짝수와 홀수를 판별할 수를 입력받는다. 입력 받은 수를 2로 나누었을 때 0이 나오면 짝수
나머지가 0 이외에 나머지가 나오면 홀수가 된다는걸 알 수있다.
1. 사용자에게 숫자를 입력받는다.
user_input = int(input("짝수와 홀수를 판별해드리겠습니다 숫자를 입력하세요 : "))
2. user_input 를 2로 나눴을때 그 수가 0인지 아니면 나머지가 나오는지 계산하는 코드를 짠다
% 는 나머지를 알 수 있는 기호다.
evenAndOdd = user_input % 2
3. 나머지가 0인지 2인지 확인하는 코드를 만든다
if evenAndOdd == 0 : #evenAndOdd가 0일 때
print ("정수") # 정수를 출력한다
else : #그렇지 않으면 홀수를 출력한다.
print("홀수")
## 다음은 evenAndOdd를 쓰지않고 만든 버전이디
# 사용자로부터 숫자 입력 받기
user_input = int(input("짝수와 홀수를 판별해드리겠습니다 숫자를 입력하세요: "))
# 짝수와 홀수 판별
if user_input % 2 == 0:
print("짝수")
else:
print("홀수")
순서도

결과

예제14
3의 배수 판별하기
사용자로부터 입력받은 수를 3으로 나눈 나머지가 0이면 입력받은 수는 3의 배수이고, 그렇지 않으면 3의 배수가 아니다.
예를 들어, 10은 3으로 나눈 나머지가 0이 아니므로 3의 배수가 아니다. 반면 15는 3으로 나눈 나머지가 0이므로 15는 3의 배수가 된다.
분석과 풀이
1, 사용자로부터 수를 받는다
a = int(input("3의 배수인지를 판별해드리겠습니다 숫자를 입력하세요 : "))
2. 만약 a를 3으로 나눴을때 0이 나온다면 그 수는 3의 배수이다.
if a % 3 == 0:
print("3의 배수")
3. 만약 그렇지 않다면 3의 배수가 아니다.
else:
print("3의 배수가 아닙니다")
순서도

결과

예제15
나이에 따른 입장료
입장료 정가가 5000원인 경우 나이에 따른 요금체계가 다음과 같은 경우 나이를 입력 받아 입장료를 구한다.
입력 받은 나이가 8미만이면 “0”, 그렇지 않고 60미만이면 정가인 5000, 그렇지 않으면 정가의 50%인 2500을 출력한다.

분석과 풀이
1. 입장료가 5000원이므로 그 값을 admission에 저장한다.
admission = 5000
2. 사용자에게 나이를 입력 받는다.
age = int(input("나이를 입력하세요 : ")
3. 나이가 8보다 어리면 무료다.
if age < 8 :
price = 0 #가격을 0원으로 책정한다.
4. 나이가 60 보다 어리면 가격은 정상가격이다
elif age < 60
price = admission
5. 그렇지 않다면에 해당되는건 나이가 60 이상이라는 뜻이니 이럴 경우에는 50% 할인가를 입력한다.
else :
price = admission / 2
6. 출력
print("입장료는 %d 입니다" % price)
순서도

결과

예제16
3의 배수이면서 5의 배수 판별하기
사용자로부터 입력받은 수를 3으로 나눈 나머지가 0이고 5로 나눈 나머지도 0이면 3의 배수이면서 5의 배수이다.
예를 들어, 10은 3으로 나누었을 때 나머지가 1이 되어 0이 아니다. 따라서 10은 3의 배수이면서 5의 배수가 아니다.
반면 15는 3으로 나누었을 때 나머지가 0이 되고, 5로 나누었을 때도 나머지가 0이 되므로 15는 3의 배수이면서 5의 배수가 된다.
분석과 풀이
1.사용자로부터 정수를 입력 받는다
user_input = int(input("숫자를 입력하세요 : "))
2. 3의 배수와 5의 배수가 같이 나오는걸 출력한다
if user_input % 3 == 0 and user_input % 5 == 0 :
print("%d는 3의 배수이면서 5의 배수입니다" % user_input)
3. 그렇지 않은 모둔 경우는 3의 배수이면서 5의 배수가 아니기 때문에 else로 표현한다
else:
print("%d는 3의 배수이면서 5의 배수가 아닙니다" % user_input)
#3의 배수이면서 5의 배수가 아니지만 3의 배수이던지 5의 배수 구하는 법
user_input = int(input("정수를 입력해주세요: ")) # 사용자로부터 숫자 입력 받기
# 3의 배수이면서 5의 배수인지 판별
if user_input % 3 == 0 and user_input % 5 == 0:
print("3의 배수이면서 5의 배수입니다.")
elif user_input % 3 == 0:
print("3의 배수입니다.")
elif user_input % 5 == 0:
print("5의 배수입니다.")
else:
print("3의 배수도 아니고 5의 배수도 아닙니다.")
순서도

결과

예제17
나이에 따른 공원입장료
나이에 따른 공원 입장료는 다음과 같다.
입력 받은 나이가 8미만이거나 60세 이상이면 “무료”를 출력하고, 그렇지 않으면 “5000원”을 출력한다.

분석과 풀이
출처 입력
1. 사용자의 나이를 묻는다
age = int(input("나이를 입력하세요 : "))
admission = 5000
2. 8세 이하는 무료로 입장하는 코드를 만든다
if age <= 8 :
print("8세 이하는 무료입니다 입장하세요")
3. 8세 이상 60세 미만은 정가 5000원을 받는다
elif age < 60 :
print("입장료 가격은 %d원 입니다" % admission)
4. 60세 이상은 무료로 입장 가능하는 코드를 만든다.
else :
price = 0
print("60세 이상은 무료입니다 입장하세요")
순서도

결과

과제 06
두 수를 입력받아 두 중 작은 수를 출력하는 순서도와 파이썬 프로그램을 작성하여라.
분석과 풀이
출처 입력
1. 두수를 사용자에게 입력 받는다.
user_input1 = int(input("첫번째 숫자를 입력하세요 : "))
user_input2 = int(input("두번째 숫자를 입력하세요 : "))
2. 만약 가장 user_input1 user_input2 보다 작다면 가장작은건 user_input1 이다
if user_input1 < user_input2 :
print("가장 작은 수는 %d입니다" % user_input1)
3. 그반대는 user_input2 이다.
else :
print("가장 작은 수는 %d입니다" % user_input2)
순서도
결과

과제 07
두 수를 입력받아 두 수의 차를 출력하는 순서도와 파이썬 프로그램을 작성하여라
분석과 풀이
1. 두수를 사용자에게 입력 받는다.
num1 = int(input("첫번째 숫자를 입력하세요 : "))
num2 = int(input("두번째 숫자를 입력하세요 : "))
2. 두 수중 더 큰 값을 확인하고 큰 값에서 작은 값을 뺀걸 구한다.
if num1 >= num2 :
difference = num1 - num2
else :
difference = num2 - num1
3. 출력한다.
print("두 수의 차이", difference)
순서도
결과

과제 08
세 수를 입력받아 가장 작은 수를 출력하는 순서도와 파이썬 프로그램을 작성하여라.
분석과 풀이
1. 사용자로부터 세 개의 숫자를 입력받기
num1 = int(input("첫번째 숫자를 입력하세요: "))
num2 = int(input("두번째 숫자를 입력하세요: "))
num3 = int(input("세번째 숫자를 입력하세요: "))
2. 가장 작은 수를 찾는 조건문
if num1 < num2:
if num1 < num3:
print("가장 작은 수는", num1)
else:
print("가장 작은 수는", num3)
else:
if num2 < num3:
print("가장 작은 수는", num2)
else:
print("가장 작은 수는", num3)
순서도

결과

엥 과제 9가없다....
과제 10
다음과 같은 요금 체계에 대해 거리에 따른 요금을 출력하는 순서도와 파이썬 프로그램을 작성하여라.

분석과 풀이
1. 유저에게 이동한 거리를 입력 받고 가격은 1000원부터 2배 3배가 되므로 1000원만 값을 저장해 놓는다
2. 5km 미만일 때는 가격은 1000원의 코드를 작성한다
if street < 5 :
print("가격은 %d원 입니다" % price)
3. 5km 이상 이고 10km 미만일때의 코드를 작성한다
elif street < 10 :
print("가격은 %d원 입니다" % (price * 2)) # 2000원이므로 1000 *2 를한다.
4. 그렇지 않은 경우는 10km 이상 밖에 없으므로 1000* 3을 출력한다.
else :
print("가격은 %d원 입니다" % (price * 3))
순서도
결과

과제 11
하나의 수를 입력받아 5의 배수 또는 7의 배수인지 판별하는 순서도와 파이썬 프로그램을 작성하여라.
user_num = int(input("정수를 입력하세요: "))
분석과 풀이
1. 5 또는 7의 배수인지 알려면 모든 변수를 생각해야한다
5와 7을 모두 만족하는 배수인 경우 5의 배수만 되고 7의 배수는 안되는경우 반대로 7의 배수만 되고 5의 배수는 안되는경우를 생각하여 코드를 작성하면 쉽게 풀 수 있다.
2. and 논리 연산자를 쓰면 5와 7의 동시에 만족하는 배수의 조건을 알 수 있다.
if user_num % 5 == 0 and user_num % 7 == 0:
print("%d는 5와 7의 배수입니다." % user_num)
3. 5만 만족하는 경우를 구한다
elif user_num % 5 == 0:
print("%d는 5의 배수입니다." % user_num)
4. 7만 만족하는 경우를 구한다.
elif user_num % 7 == 0:
print("%d는 7의 배수입니다." % user_num)
5. 모두 만족하지 않은경우는 5와 7을 모두 만족하지않는 값이다.
else:
print("%d는 5또는 7의 배수가 아닙니다." % user_num)
순서도

결과

'문제풀이 > python 파이썬' 카테고리의 다른 글
문제풀이 3.반복구조 예제 24번까지 (0) | 2024.08.04 |
---|---|
달력만들기 (0) | 2024.07.29 |
문제 풀이 1. 순차구조 예제 부터 과제 (0) | 2024.07.26 |