반응형
최근에 mysql문제를 몇 개 풀었는데 대장균 관련 문제가 시리즈처럼 있어서 재밌어 보여 풀어봤다
https://school.programmers.co.kr/learn/courses/30/lessons/301647
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
대장균들이 주기적으로 분화되어 부모와 자식 데이터가 담긴 테이블이 있다. ecoli_data
부모의 형질(genotype)을 모두 가지는 자식 개체를 구하는 문제다
1. 부모와 자식을 연결 join
2. (부모 형질 & 자식 형질) = 부모 형질인 경우 모두 물려받은 경우만
select c.id, c.genotype, p.genotype as parent_genotype from ecoli_data c
inner join ecoli_data p on c.parent_id = p.id
where (p.genotype & c.genotype) = p.genotype
order by c.id;
&는 and 연산으로 둘 다 true일때 true, 나머지는 false
||는 or 연산으로 하나만 true면 true 가 된다
2 & 5
-> 10(2) & 101(2) = 0
오랜만에 비트연산을 봐서 공부도 된것같다
특정 형질을 가지는 지 확인하는 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/301646
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
이것도 같은 방식이다
select count(*) as count from ecoli_data
where (genotype & 2) = 0 and
((genotype & 1) > 0 or (genotype & 4) > 0 );
2번 형질: 0010 = 2
1번 형질: 0001 = 1,
3번 형질: 0100 = 4
반응형
'programmers' 카테고리의 다른 글
[프로그래머스] Lv.2 완전범죄 java 중복제거 dfs (0) | 2025.09.24 |
---|---|
프로그래머스 징검다리 건너기 (이분탐색, java) (0) | 2022.05.13 |
프로그래머스 불량 사용자 java (비트마스킹, 순열, set) (0) | 2022.05.10 |
프로그래머스 외벽 점검 java (0) | 2022.04.26 |
프로그래머스 레벨2 숫자의 표현 (0) | 2022.02.22 |
댓글