Covenant

문제 : 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 % 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/ 알고리즘 문제