2023년 06월 07일 수요일 - 으어 오랜만에 회사가니깐 너무 힘들어..
오늘 올려볼 문제는 1318번 Minimum Flips to Make a OR b Equal to c 이라는 문제이다.
사진을 클릭하면 해당 문제로 이동합니다.
오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.
생각보다 쉽게 풀림
입력
사진에서도 볼 수 있듯이 int 값 3개가 입력으로 들어온다.
풀이 및 코드
a와 b를 or 연산했을 때 c를 만들기 위해서 a와 b의 비트를 뒤집을 때 가장 적게 뒤집는 수를 구하는 문제이다.
오늘은 처음부터 정답을 생각해냈다.
어차피 or 연산이므로 각자리의 비트가 다른 자리의 비트에 영향을 주지 못한다.
즉 맨 끝의 비트만 비교하면서 뒤집을 개수를 구하는 식으로 문제를 풀었다.
이제 코드를 봐보자!
풀이코드
class Solution {
public int minFlips(int a, int b, int c) {
int result = 0;
while(a > 0 || b > 0 || c > 0) {
int ar = a % 2, br = b % 2, cr = c % 2;
a >>= 1; b >>= 1; c >>= 1;
if(cr == (ar | br)) continue;
if(cr == 1) result++;
else result += ar + br;
}
return result;
}
}
제출 화면
자꾸 블로그 쓰는걸 까먹는거 같다.
요즘따라 집에서 놀기만 하고 싶어진달까나?
내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.
'LeetCode 문제 풀이' 카테고리의 다른 글
[LeetCode] 2785번 Sort Vowels in a String 문제를 풀어보았다. (ft. java) (0) | 2023.11.13 |
---|---|
[LeetCode] 111번 Minimum Depth of Binary Tree 문제를 풀어보았다. (ft. java) (0) | 2023.07.10 |
[LeetCode] 547번 Number of Provinces 문제를 풀어보았다. (ft. java) (1) | 2023.06.04 |
[LeetCode] 2101번 Detonate the Maximum Bombs 문제를 풀어보았다. (ft. java) (0) | 2023.06.02 |
[LeetCode] 785번 Is Graph Bipartite? 문제를 풀어보았다. (ft. java) (0) | 2023.05.19 |