파이썬 odd even 함수 - paisseon odd even hamsu

[파이썬/Python] 리스트에 짝수와 홀수 구분하기 

#짝수만 리턴하는 함수 만들기 

#홀수만 리턴하는 함수 만들기 #odd #even

오늘은 리스트내의 숫자 중에서 짝수와 홀수를 구분 해볼꺼에요.

짝수와 홀수를 출력하는 함수를 각각 만들어볼게요.

먼저, 사용될 리스트를 아무거나 막 숫자를 넣고 생성합니다.

lst = list({2,3,4,6,7,8,24,6,7,11,10,21,50,1})

그리고는 홀수를 리턴하는 함수를 만들어볼게요.

홀수는 2로 나누었을 때, 나머지가 1이 되는 숫자로 구분하면 되겠죠?

def printOdd(lst):
  for x in lst:
    if x % 2 == 1:
      print(x)

이렇게 만들 수 있겠네요!

그럼 짝수도 만들어볼게요.

짝수는 2로 나누었을 때, 나머지가 0이 되는 숫자로 구분하면 되겠죠?

def printEven(lst):
  for x in lst:
    if x % 2 == 0:
      print(x)

자 그럼, 각각 함수를 호출해서 제대로 동작하는지 알아봅시다!

print("Odd")
printOdd(lst)
print()
print("Even")
printEven(lst)

출력 값

Odd
1
3
7
11
21

Even
2
4
6
8
10
50
24

오호, 홀수와 짝수가 잘 구분되어서 출력되는 것 같죠?

그럼 전체 코드는 아래에 공유 해둘게요.

lst = list({2,3,4,6,7,8,24,6,7,11,10,21,50,1})

def printOdd(lst):
  for x in lst:
    if x % 2 == 1:
      print(x)

def printEven(lst):
  for x in lst:
    if x % 2 == 0:
      print(x)

print("Odd")
printOdd(lst)
print()
print("Even")
printEven(lst)

>> 파이썬 관련 다른 글 보러가기 <<

2021/01/07 - [#연구/#Python] - 파이썬으로 Googles SMTP 서버를 이용해서 메일을 보내보자! #파이썬으로 메일 전송 방법 #Sending Emails using Google SMTP Server #Python smtplib

파이썬으로 Googles SMTP 서버를 이용해서 메일을 보내보자! #파이썬으로 메일 전송 방법 #Sending Email

파이썬으로 Googles SMTP 서버를 이용해서 메일을 보내보자! #파이썬으로 메일 전송 방법 #Sending Emails using Google SMTP Server 시스템 관리자나 Administrator들은 시스템의 오류나 상황들을..

isss.tistory.com

파이썬 odd even 함수 - paisseon odd even hamsu

2021/01/06 - [#연구/#Python] - 파이썬으로 FTP 로그인 부터 파일 업로드&다운로드까지! #파이썬 ftplib 모듈 #파이썬으로 FTP 로그인하기 #파이썬으로 FTP 파일 전송

파이썬으로 FTP 로그인 부터 파일 업로드&다운로드까지! #파이썬 ftplib 모듈 #파이썬으로 FTP 로그

파이썬으로 FTP 로그인 부터 파일 업로드&다운로드까지! #파이썬 ftplib 모듈 #파이썬으로 FTP 로그인하기 #파이썬으로 FTP 파일 전송 오늘은 FTP 서버에 파이썬 스크립트를 통해 연결하고,

isss.tistory.com

파이썬 odd even 함수 - paisseon odd even hamsu

2021/01/05 - [#연구/#Python] - 파이썬에서 명령을 실행하고 응답 값을 처리 할 때, subprocess 모듈을 사용하셨다면, 이제부터는 Envoy를 사용하세요! #Python Envoy #Python wrapper subprocess module

파이썬에서 명령을 실행하고 응답 값을 처리 할 때, subprocess 모듈을 사용하셨다면, 이제부터는 En

파이썬에서 명령을 실행하고 응답 값을 처리 할 때, subprocess 모듈을 사용하셨다면, 이제부터는 Envoy를 사용하세요! #Python Envoy #Python wrapper subprocess module 파이썬에서 외부 프로세..

isss.tistory.com

파이썬 odd even 함수 - paisseon odd even hamsu

2021/01/05 - [#연구/#Python] - 파이썬으로 Mysql에 값을 Insert하려면 어떻게 해야할까요? 파이썬으로 Mysql Database 다루기 #Connect to Mysql Database with Python

파이썬으로 Mysql에 값을 Insert하려면 어떻게 해야할까요? 파이썬으로 Mysql Database 다루기 #Connect to

파이썬으로 Mysql에 값을 Insert하려면 어떻게 해야할까요? 파이썬으로 Mysql Database 다루기 #Connect to Mysql Database with Python Mysql DB를 파이썬으로 다뤄봅시다. 파이썬에서는 Mysql DB를..

isss.tistory.com

파이썬 odd even 함수 - paisseon odd even hamsu


문제 설명

정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요.

제한 조건

  • num은 int 범위의 정수입니다.
  • 0은 짝수입니다.

입출력 예

numreturn
3 "Odd"
4 "Even"
출처: 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/12937

나의 코드

def solution(num):
    return "Even" if num % 2 == 0 else "Odd"

저는 단순히 modulo 연산(%)을 통해 홀수인지 짝수인지 판별했습니다.
한 줄로 if-else 문을 처리하는 python의 삼항 연산자를 사용하면 간결하게 작성할 수 있습니다.

다른 코드

def solution(num):
    return ["Even", "Odd"][num & 1]

위 코드는 리스트의 index를 입력과 1의 AND 연산 결과로 사용했습니다.

만약 num 이 짝수라면 이진변환을 했을 때 마지막 자리가 0이기 때문에 num & 1 의 결과가 0이 되어 0번째 원소인 "Even"을 반환할 것이고, num 이 홀수라면 num & 1 의 결과가 1이 되어 1번째 원소인 "Odd"를 반환할 것입니다.

&는 AND 비트 연산을 한 것인데, 동작 방식을 간단히 살펴보면 아래와 같습니다.

>>> 3 & 6
2

두 수를 이진수로 변환합니다.
3 -> 11
6 -> 110

비트 단위로 AND 연산을 합니다.
202^0 자리: 1 & 0 = 0
212^1자리: 1 & 1 = 1
222^2 자리: 0 & 1 = 0

이진수로 010 이라는 결과가 나오는데, 출력은 자동으로 십진수로 변환되기 때문에 2가 출력된 것입니다.

따라서, 문제로 돌아가서, 홀수는 항상 202^0자리가 1이고 짝수는 0이기 때문에 1과 AND 비트 연산을 해줌으로써 간단하게 홀수인지 짝수인지 판별할 수 있음을 알 수 있습니다.

질문이나 오류 수정은 댓글로 남겨주세요!