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
- python Leetcode
- 잇츠디모
- 릿코드풀이
- 파이썬 프로그래머스
- python 알고리즘
- 파이썬알고리즘
- python xor
- 알고리즘풀기
- leetcode풀기
- 상가수익률계산기
- 파이썬릿코드풀기
- 릿코드 풀기
- python 릿코드
- LeetCode
- leetcode 풀기
- 파이썬 릿코드
- python sorted
- 릿코드풀기
- 파이썬 알고리즘 풀기
- 파이썬 알고리즘
- binary search
- 코틀린기초
- 릿코드 파이썬
- leetcode풀이
- 알고리즘풀이
- 파이썬알고리즘풀기
- 릿코드
- python zip_longest
- python priority queue
- 파이썬릿코드
Archives
- Today
- Total
소프트웨어에 대한 모든 것
1318. Minimum Flips to Make a OR b Equal to c 본문
반응형
문제)
1318. Minimum Flips to Make a OR b Equal to c
Given 3 positives numbers a, b and c. Return the minimum flips required in some bits of a and b to make ( a OR b == c ). (bitwise OR operation).
Flip operation consists of change any single bit 1 to 0 or change the bit 0 to 1 in their binary representation.
Example 1:
Input: a = 2, b = 6, c = 5
Output: 3
Explanation: After flips a = 1 , b = 4 , c = 5 such that (a OR b == c)
Example 2:
Input: a = 4, b = 2, c = 7
Output: 1
Example 3:
Input: a = 1, b = 2, c = 3
Output: 0
Constraints:
- 1 <= a <= 10^9
- 1 <= b <= 10^9
- 1 <= c <= 10^9
솔루션1)
- a, b, c를 바이너리로 변경
- zfill()을 통해서 바이너리 길이를 맞추는 작업 수행
- 반복문을 통해서 순차적으로 OR 연산을 비교하면서 비트를 몇 개 flips 할지 계산해주면 끝
class Solution:
def minFlips(self, a: int, b: int, c: int) -> int:
# to binary string
a = bin(a)[2:]
b = bin(b)[2:]
c = bin(c)[2:]
# 최대 길이
max_len = max(len(a), len(b), len(c))
# 최대 길이에 맞춰서 0 fill 수행
a = a.zfill(max_len)
b = b.zfill(max_len)
c = c.zfill(max_len)
count = 0
for x, y, z in zip(a, b, c):
if (int(x) | int(y)) == int(z):
# OR 연산 했을 때 값이 z와 동일하므로 bit flip 할 필요 없음
continue
elif int(z) == 0:
# z가 0이 되어야 하므로 1인 경우는 무조건 bit flip을 해줘야 하는 경우
# a, b 모두 1인 경우는 2번 bit flips 발생
count += 1 if x == '1' else 0
count += 1 if y == '1' else 0
else:
# z가 1인 경우. bit flip이 1번은 무조건 수행되어야 함
count += 1
return count
반응형
'알고리즘 > LeetCode' 카테고리의 다른 글
2389. Longest Subsequence With Limited Sum (0) | 2022.12.25 |
---|---|
2418. Sort the People (0) | 2022.12.24 |
2367. Number of Arithmetic Triplets (0) | 2022.12.24 |
2352. Equal Row and Column Pairs (0) | 2022.12.23 |
2373. Largest Local Values in a Matrix (0) | 2022.12.23 |
Comments