티스토리 뷰
1. 문제
문제 설명
정수 num이 짝수일 경우 Even을 반환하고 홀수인 경우 Odd를 반환하는 함수, solution을 완성해주세요.
제한 조건
- num은 int 범위의 정수입니다.
- 0은 짝수입니다.
입출력 예
num | return |
---|---|
3 | Odd |
4 | Even |
2. 풀이 과정
def solution(num):
answer = "Even" if num % 2 == 0 else "Odd"
return answer
3. 다른 사람의 풀이
def evenOrOdd(num):
return ["Even", "Odd"][num & 1]
비트 논리 연산자를 이용한 풀이이다.
비트 논리 연산자란 2진수의 각 자릿수를 AND, OR, XOR, NOT 연산을 하는 것이다.
그 중에서도 & 연산자는 각 자릿수를 비교했을 때, 두 개 모두 1이어야 1이 나온다.
다음은 & 연산자에 대한 진리표이다.
연산자 | 비트1 | 비트2 | 결과 |
---|---|---|---|
& | 0 | 0 | 0 |
0 | 1 | 0 | |
1 | 0 | 0 | |
1 | 1 | 1 |
따라서, 다음 풀이를 찬찬히 살펴보면 다음과 같다.
num = 3
print(num & 1)
# 3을 2진수로 바꾸면 -> 11
# 1을 2진수로 바꾸면 -> 01
# & 연산자 결과 -> 01
>>> 1
return ["Even", "Odd"][1]
# 결과 -> Odd
num = 8
print(num & 1)
# 8을 2진수로 바꾸면 -> 1000
# 1을 2진수로 바꾸면 -> 0001
# & 연산자 결과 -> 0000
>>> 0
return ["Even", "Odd"][0]
# 결과 -> Even
비트 논리 연산자를 좀 더 공부해야겠다. 멋있는 풀이다.
참고 자료
파이썬 코딩 도장: 47.1 비트 연산자 사용하기
Unit 47. 부록 이제부터 부록입니다. 부록은 참고삼아 알아둘 내용, 자주 사용하지 않는 기능, 내용이 다소 어려운 부분, 파이썬을 어느 정도 알고난 뒤에 봐야할 내용 등을 담았습니다. 여기에 나오는 내용을 모두 익힐 필요는 없으며 필요할 때마다 찾아보면 됩니다. 47.1 비트 연산자 사용하기 컴퓨터는 2진수(0과 1)를 사용하므로 대부분의 프로그래밍 언어는 2진수를 다루는 연산자를 제공합니다. 그런데 2진수로 변환하는 방법을 잘 모른다면 어떻게 해야
dojang.io
'Algorithm > Programmers' 카테고리의 다른 글
문자열을 정수로 바꾸기 (0) | 2020.02.08 |
---|---|
서울에서 김서방 찾기 (0) | 2020.02.04 |
평균 구하기 (0) | 2020.01.30 |
수박수박수박수박수박수? (0) | 2020.01.27 |
K번째 수 (0) | 2020.01.26 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Django 회원 정보 수정
- Django 업로드
- Django User
- Django 북마크
- python
- Django 비밀번호 수정
- 북마크 어플리케이션
- 파이썬
- Django 프로젝트 생성
- Redis Cache
- Django 어플리케이션
- Redis
- query parameter
- Django 로그인
- Django 해시태그
- Django 컬렉션
- Django 로그아웃
- Django 댓글
- Django 좋아요
- Django 검색
- MySQL
- Django 팔로우
- Django 회원가입
- Django 인스타그램
- 서점 어플리케이션
- Django Instagram
- Django application
- 장고
- java
- Django
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
글 보관함