1. 문제 0과 1로 구성된 이진 비트열에서 1의 개수를 구한다면? '1101'이면 1이 3개 2. 방법1 간단하게 비트열을 돌아서 1의 개수를 세기 시간복잡도는 비트열의 길이를 S라 하면 O(S) s = '1101'count = 0for i in range(len(s)): if s[i] == '1': count += 1print(count) 비트열이 주어지지 않고 단순히 정수로 주어질 수 있다 예를 들어 '1101' = 13인데 이진 비트열로 바꾸지 않고 구할 수 있나? n의 마지막 비트와 1을 and연산하여 1이면 counting하고 n의 마지막 비트를 삭제해나간다 비트를 삭제하는 방법은 n >> 1 n의 비트를 오른쪽으로 1칸 이동시키고 최하위비트는 소멸된다..
1. 논리 연산 A and B는 1)A가 True이고 B가 True이면 True 2) A가 True이고 B가 False이면 False 3) A가 False이고 B가 True이면 False 4) A가 False이고 B가 False이면 False >>> A가 False이면 B에 상관없이 A and B는 False A or B는 1) A가 True이고 B가 True이면 True 2) A가 True이고 B가 False이면 True 3) A가 False이고 B가 True이면 True 4) A가 False이고 B가 False이면 False >>> A가 True이면 B에 상관없이 A or B는 반드시 True 2. 단축평가 파이썬은 and, or 같은 논리 연산에서 결과가 확실하면 그 다음을 보지 않고 첫번째 값을 ..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.