티스토리 뷰
728x90
반응형
https://www.acmicpc.net/problem/14891
[풀이]
[코드-Python]
import sys
from copy import deepcopy
input=sys.stdin.readline
#입력#
cogs=[]
cogs_clockwise=[0]*4 #초기화
for _ in range(4):
cogs.append([*map(int,input().strip())])
K=int(input())
#톱니 K번 회전#
for _ in range(K):
target, clockwise= map(int, input().strip().split())
cogs_clockwise[target-1]=clockwise
#(1) target의 왼쪽부터확인
#now가 0번이면 (1번톱니) 더이상 왼쪽은 존재하지 않는다.
for now in range(target-1, 0, -1):
#현재톱니는 회전중인가?
if abs(cogs_clockwise[now])==1:
#현재톱니의 6번째값과, 왼쪽톱니의 2번째값이 같은가?-> 왼쪽톱니 정지
if cogs[now][6]==cogs[now-1][2]:
cogs_clockwise[now-1]=0
#다르다면-> 왼쪽톱니는 현재 톱니의 반대방향으로 회전
else:
cogs_clockwise[now-1]=(-1)*cogs_clockwise[now]
#현재 톱니가 회전하지 않으면, 왼쪽톱니도 회전하지 않는다.
else:
cogs_clockwise[now-1]=0
#(2) target의 오른쪽확인
#now가 3번이면 더이상 오른쪽은 존재하지 않는다.
for now in range(target-1, 3):
#현재 톱니는 회전중인가?
if abs(cogs_clockwise[now])==1:
#현재톱니의 2번째값과 오른쪽톱니의 6번째 값이 같은가?->오른쪽 톱니 정지
if cogs[now][2]==cogs[now+1][6]:
cogs_clockwise[now+1]=0
else:
cogs_clockwise[now+1]=(-1)*cogs_clockwise[now]
else:
cogs_clockwise[now+1]=0
#(3) 톱니회전
for i in range(4):
if cogs_clockwise[i]==1: #시계방향
tmp=deepcopy(cogs[i])
cogs[i]=tmp[-1:]+tmp[:-1]
elif cogs_clockwise[i]==-1:#반시계방향
tmp=deepcopy(cogs[i])
cogs[i]=tmp[1:]+[tmp[0]]
#K번회전후 톱니상태 결과
result=0
for i in range(4):
#12시방향의 cogs[i][0]이 1이라면 => 2**i만큼 더한다.
if cogs[i][0]==1:
result+=2**i
print(result)
728x90
반응형
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ-16936] 나3곱2 (0) | 2020.03.26 |
---|---|
[BOJ-1946] 신입사원 (0) | 2020.03.25 |
[BOJ-14500] 테트로미노 (0) | 2020.03.21 |
[BOJ-14499] 주사위 굴리기 (0) | 2020.03.21 |
[BOJ-16234] 인구이동 (0) | 2020.03.18 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- vscode
- git
- Mongoose
- typeORM
- 바이트디그리
- MongoDB
- Nest.js
- 습관개선
- 디지털디톡스
- 스마트폰중독
- 한달어스
- TypeScript
- gem
- nestjs
- IT용어
- 개발용어
- 클린아키텍쳐
- 한달독서
- 미완
- jest
- MySQL
- 갓생살자
- RDBMS
- TDD
- nestjs jest
- Jekyll
- 참고
- OS
- node.js
- 나도 할 수 있다
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함