65. 세 정수 a, b, c가 입력되었을 때, 짝수만 출력해보자.
Tip1 : 조건문 이용
Tip2 :
- filter() 이용
- '*(asterisk)' 이용
- 익명함수 lambda 이용
1) 정답
# 1
a, b, c = map(int, input().split())
if not a%2: print(a)
if not b%2: print(b)
if not c%2: print(c)
#2
a, b, c = map(int, input().split())
print( *(filter(lambda num: num%2 == 0, [a, b, c])) )
#1
: a%2 == 0 일때 값이 false가 되기 때문에 not을 사용해서 값을 true로 바꿔준 다음 정수를 출력하도록 했다. 즉, 짝수일 때만 값을 출력하도록 했다.
#2 (필터함수를 이용한 구현)
ex) lambda 함수
# x를 인수로 받아 x+1을 리턴함
lambda x : x+1
# 호출
(lambda x : x+1)(10)
# 10이 x로 들어가고, 10+1의 값이 리턴됨
# 결과값 = 11
- 입력된 a, b, c의 값을 리스트 형태로 파라미터로 넣어주면 a가 num으로 들어간 다음 2로 나눠지고 그것이 짝수이면 0이 나오고 not 0 = true가 되므로 그에 해당하는 a값은 true가 되는 순간 반환되고, 해당 조건이 거짓이면 반환되지 않는다. (이 과정을 a, b, c 세 번 반복함)
2) 내가 쓴 답
a, b, c = map(int, input().split())
if a % 2 == 0 :
print(a)
if b % 2 == 0 :
print(b)
if c % 2 == 0 :
print(c)
- 조건식을 세 번 사용해서 2로 나눈 나머지가 0일 때만 출력하도록 했다. 근데 자꾸만 if를 쓰면 else도 당연히 써야되는거 아닌가?? 하는 생각을 하게됨....그르지말어.......
66. 세 정수 a, b, c가 입력되었을 때, 짝(even)/홀(odd)을 출력해보자.
1) 정답
# 1
a, b, c = map(int, input().split())
print( 'odd' if a%2 else 'even' )
print( b%2 and 'odd' or 'even' )
print( ['even', 'odd'][c%2] )
#2
a, b, c = map(int, input().split())
print( *map(lambda num: 'odd' if num%2 else 'even', [a, b, c]) )
#1
: if-else로 삼항 연산을 통하여 답을 구현할 수 있고, 비교 연산자로도 삼항 연산을 통하여 답을 구할 수 있으며 세 번째 경우처럼 리스트를 이용하여 답을 구할수도 있다.
2) 내가 쓴 답
a, b, c = map(int, input().split())
if a % 2 == 0:
print("even")
else:
print("odd")
if b % 2 == 0:
print("even")
else:
print("odd")
if c % 2 == 0:
print("even")
else:
print("odd")
- 정답처럼 저렇게 줄여서 쓰는 조건문?이 익숙하지가 않아서 이렇게 길게 쓰고있다...
67. 정수 1개가 입력되었을 때, 음(minus)/양(plus)과 짝(even)/홀(odd)을 출력해보자.
입력
-4
출력
minus
even
1) 정답
num = int(input())
print( num>0 and 'plus' or 'minus' )
print( num%2 and 'odd' or 'even' )
- 삼항 연산을 통해 답을 출력하도록 했다.
2) 내가 쓴 답
a = int(input())
if a > 0:
print("plus")
else:
print("minus")
if a % 2 == 0:
print("even")
else:
print("odd")
- 이쯤되니 그냥,, 길게 써도 맞기만 하면 되는거 아니야??하는 뻔뻔한 생각이 든다.
68. 점수(정수, 0 ~ 100)를 입력받아 평가를 출력해보자.
**평가 기준**
점수 범위 : 평가
90 ~ 100 : A
70 ~ 89 : B
40 ~ 69 : C
0 ~ 39 : D
로 평가되어야 한다.
Tip : if-elif-else를 이용한다.
정답과 내가 쓴 답이 같음
a = int(input())
if a >= 90:
print("A")
elif a >= 70:
print("B")
elif a >= 40:
print("C")
else a >= 0:
print("D")
- 조건문을 사용하여 평가 기준만큼 나누어서 해당 성적을 출력하도록 했다.
69. 평가를 문자(A, B, C, D, ...)로 입력받아 내용을 다르게 출력해보자.
**평가 내용**
평가 : 내용
A : best!!!
B : good!!
C : run!
D : slowly~
나머지 문자들 : what?
정답과 내가 쓴 답이 같음
char = input()
if char == "A":
print("best!!!")
elif char == "B":
print("good!!")
elif char == "C":
print("run!")
elif char == "D":
print("slowly~")
else:
print("what?")
70. 월이 입력될 때 계절 이름이 출력되도록 해보자.
예
[월 : 계절 이름]
12, 1, 2 : winter
3, 4, 5 : spring
6, 7, 8 : summer
9, 10, 11 : fall
1) 정답
# 1
month = int(input())
if month==12 or month==1 or month==2:
print('winter')
elif month==3 or month==4 or month==5:
print('spring')
elif month==6 or month==7 or month==8:
print('summer')
else:
print('fall')
# 2
if month in [12,1,2]:
print('winter')
elif month in [3,4,5]:
print('spring')
elif month in [6,7,8]:
print('summer')
else:
print('fall')
#1 처럼 답을 작성해도 되지만 파이썬에서는 #2의 방법으로 더 간단하게 문제를 해결할 수 있다.
- month가 [12, 1, 2]안에 있다면 winter를 출력하도록 했다.
2) 내가 쓴 답
month = int(input())
if month == 1 or month == 2 or month == 12:
print("winter")
elif month == 3 or month == 4 or month == 5:
print("spring")
elif month == 6 or month == 7 or month == 8:
print("summer")
else:
print("fall")
- if 조건문에 비교 연산자 or를 사용해서 해당하는 계절 이름이 출력되도록 했다.
'파이썬 코드업 기초 100제' 카테고리의 다른 글
파이썬 코드업 기초 13 - 종합 (0) | 2022.02.06 |
---|---|
파이썬 코드업 기초 12 - 반복실행구조 (0) | 2022.02.05 |
파이썬 코드업 기초 10 - 삼항연산 (0) | 2022.01.27 |
파이썬 코드업 기초 9 - 비트단위 논리연산 (0) | 2022.01.26 |
파이썬 코드업 기초 8 - 논리연산 (0) | 2022.01.25 |