백준 알고리즘 15787번 : 기차가 어둠을 헤치고 은하수를 파이썬 코드 <문제풀이>
2022. 3. 9. 01:27ㆍ알고리즘 문제풀이
반응형
https://www.acmicpc.net/problem/15787
import sys;input=sys.stdin.readline
N,M=map(int,input().split())
train = list( 0 for _ in range(N) )
for _ in range(M):
command=list(map(int,input().split()))
if command[0] == 1:
i=command[1]-1
x=command[2]-1
train[i]=train[i] | 1 << x
elif command[0] == 2:
i=command[1]-1
x=command[2]-1
train[i] = train[i] & ~(1<<x)
elif command[0] == 3:
i=command[1]-1
train[i] = train[i] << 1
train[i] = train[i] & ~(1 << 20)
else:
i=command[1]-1
train[i] = train[i]>>1
ans=0
for i in range(N):
flag=True
for j in range(0,i):
if train[i]==train[j]:
flag=False
break
if flag:
ans+=1
print(ans)
비트마스킹을 적용해야 하는 문제입니다.
개념 자체는 어렵지 않은데, 이걸 코드로 구현하려니 헤매게 되는 분류인 것 같습니다.
반응형
'알고리즘 문제풀이' 카테고리의 다른 글
백준 알고리즘 20159번 : 동작 그만. 밑장 빼기냐? 파이썬 코드 <문제풀이> (2) | 2022.07.11 |
---|---|
백준 알고리즘 11660번 : 구간 합 구하기 5 파이썬 코드 <문제풀이> (0) | 2022.03.06 |
백준 알고리즘 2512번 : 예산 파이썬 코드 <문제풀이> (0) | 2022.03.03 |
백준 알고리즘 11724번:연결 요소의 개수 파이썬 코드 <문제풀이> (0) | 2022.03.02 |
백준 알고리즘 20055번: 컨베이어 벨트 위의 로봇 파이썬 코드 <문제풀이> (0) | 2022.03.01 |