250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 티스토리챌린지
- levle1
- with절
- 프로그래머스문풀
- 활성사용자수
- SQL
- sql문풀
- 서브쿼리
- leetcode
- 그로스해킹
- 문풀
- sql50
- mysql
- join
- 데이터리안
- 코테준비
- 위키독스
- SQL고득점KIT
- 데이터리안넥스트레벨챌린지
- 오블완
- 시간함수
- 셀프조인
- 파이썬문풀
- 코테후기
- 데이터분석
- 데벨챌
- 데이터리안실전반
- leetcode문풀
- 파이썬
- 프로그래머스
Archives
- Today
- Total
꿈은 데이터분석가, 취미는 계획
[Python] 프로그래머스 문풀 :: 짝수와 홀수 구분하기 본문
728x90
출처: [프로그래머스 스쿨 - 코딩테스트 연습 - Python3_level1]
링크:https://school.programmers.co.kr/learn/courses/30/lessons/12937
문제: 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수를 작성
1. if - else 사용
2로 나눴을 때 0이면 "Even", 홀수면 "Odd"를 반환
def solution(num):
return "Even" if num % 2 == 0 else "Odd"
def solution (num):
return "Odd" if num%2 else "Even"
2. &연산자와 인덱싱 사용
&는 비트 단위로 비교, 각 비트 위치에서 비교하여 모두 1일 때만 1을 반환(AND를 사용하면 x)
1) num&1 실행
5 (이진수: 101) & 1 (이진수: 001) => 001로 1을 반환(홀수는 마지막 비트가 항상1)
4 (이진수: 100) & 1 (이진수: 001) => 000로 0을 반환 (짝수는 마지막 비트가 항상0)
2) 인덱싱으로 값 찾기
["Even", "Odd"][0] : 0 번째 값인 "Even"을 반환
["Even", "Odd", "C" ][3]: 리스트 인덱싱이므로 3번째인 "C"를 반환
def solution(num):
return ["Even", "Odd"][num&1]
3. 최종정리
첫 번째 코드는 나머지 연산을 사용하므로 연산 비용이 높음
두 번째 코드는 비트 연산을 사용하여 연산 비용이 낮고 빠르게 동작하므로 더 효율적
728x90
'Python > 파이썬 문풀' 카테고리의 다른 글
[MY SQL] 가격 변동이 있는 제품의 평균 가격 구하기 (0) | 2024.09.20 |
---|---|
[Python] 프로그래머스 문풀 :: 정수n의 약수 합 구하기 (1) | 2024.01.06 |
[python] 파이썬 2개의 리스트에서 공통된 값 찾기 (0) | 2024.01.01 |
[python] 파이썬 정렬 sort()와 sorted() 차이 (0) | 2023.12.31 |
[python] 딕셔너리 이해 및 활용하기 (2) | 2023.12.30 |