문제 : evenOrOdd 메소드는 int형 num을 매개변수로 받습니다.
num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하도록 evenOrOdd에 코드를 작성해 보세요.
num은 0이상의 정수이며, num이 음수인 경우는 없습니다.
1 2 3 4 5 6 7 8 9 10 11 12 | def evenOrOdd(num): if num%2==0: s = "Even" else: s = "Odd" return s #아래는 테스트로 출력해 보기 위한 코드입니다. print("결과 : " + evenOrOdd(3)) print("결과 : " + evenOrOdd(2)) | cs |
간단하게 풀면, 홀수와 짝수로 분기점을 나누고, 짝수면 "Even"을 홀수면 " Odd"를 리턴하면 된다.
[다른풀이]
1 2 3 4 5 6 7 | def evenOrOdd(num): return num % 2 and "Odd" or "Even" #아래는 테스트로 출력해 보기 위한 코드입니다. print("결과 : " + evenOrOdd(3)) print("결과 : " + evenOrOdd(2)) | cs |
num이 홀수인 경우 num % 2가 거짓이 된다.
뒷 부분을 떼어놓고 리턴부분을 보면 return num%2(false) and "Odd" 가 된다. and 조건은 둘 다 참이어야 하는 조건에 맞지 않기 때문에 return num%2 or "Even" 즉 둘 중 하나만 참일 때 가능한 Even 이 출력된다.
마찬가지로 num%2가 참이면 and 조건이 성립되어 Odd가 출력된다.
출처 : http://tryhelloworld.co.kr/ 알고리즘 문제
'Computer Science > Problem Solving' 카테고리의 다른 글
[tryhelloworld]level1 서울에서 김서방 찾기 by파이썬 (0) | 2017.07.29 |
---|---|
[tryhelloworld]level1 삼각형 출력하기 by파이썬 (0) | 2017.07.29 |
[tryhelloworld]level2 자연수를 뒤집어 리스트로 만들기 by파이썬 (0) | 2017.07.29 |
[tryhelloworld]level1 평균구하기 by파이썬 (0) | 2017.07.29 |
[tryhelloworld]level1 수박수박수박수박수박수? by파이썬 (0) | 2017.07.29 |