본문 바로가기

백준 write-up/정렬 & 그리디

[백준] 동전 뒤집기 : 1285번 - Python

728x90
반응형

https://www.acmicpc.net/problem/1285

 

1285번: 동전 뒤집기

첫째 줄에 20이하의 자연수 N이 주어진다. 둘째 줄부터 N줄에 걸쳐 N개씩 동전들의 초기 상태가 주어진다. 각 줄에는 한 행에 놓인 N개의 동전의 상태가 왼쪽부터 차례대로 주어지는데, 앞면이 위

www.acmicpc.net

 

 

 

문제를 풀면서 몰랐던 개념

 

(1) [Python] 비트 마스크(bitmask)

: 정수를 이진수로 표현하여 비트 연산을 통해 문제를 해결해 나가는 기술

-> 이를 활용해 DP가 가능함!

 

 AND : & 

 OR : | 

 XOR : ^ 

 NOT : ~ 

 Shift : << , >> 

    ex) 13(1101)을 오른쪽으로 1bit 움직인다고 하면, 6(0110)이 됨.

 

 

(2) [Python] 진법 변환

: 10진수 -> n진수 변환 / n진수 -> 10진수 변환

### ex) 10진수 -> n진수 변환

num = 24
print(bin(num))	# 2진수
>>> 0b11000

print(oct(num))	# 8진수
>>> 0o30

print(hex(num))	# 16진수
>>> 0x18
### ex) n진수 -> 10진수 변환

num = '10010'
print(int(num, 2))

num = '22'
print(int(num, 8))

num = '12'
print(int(num, 16))

# 모두 출력 결과는 18
>>> 18

 

문제의 접근 방법

 

- r

 

 

내가 막혔던 부분

 

- r

 

 

 

문제 풀이 방법

 

 

 

 

소스코드

728x90
반응형