Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Linear Regression
- 기계학습
- 부스트캠프
- machinelearning
- 머신러닝
- GPT
- 코테
- transformer
- attention
- Linear Model
- NLP
- 일기
- prompt engineering
- BFS
- Programmers
- Django
- 파이썬
- ChatGPT
- 프롬프트
- gradient descent
- 알고리즘
- dl
- Deeplearning
- Python
- LLM
- rnn
- 프로그래머스
- deque
- 코딩테스트
- LeetCode
Archives
- Today
- Total
크크루쿠쿠
백준 14891 톱니바퀴 Python 3 본문
꽤나 전에 풀었던 문제같은데 갑자기 기억이 난 문제라 남겨본다.
코드를 조금 더 간결하게 할수 있을거 같은데 아직 능력이 조금 부족한것 같다.
def rotate(array, n): #돌리는 함수
return array[-n:]+array[:-n]
def gear_turn(gears,numbers): #어느 톱니가 돌지 먼저 체크후에 한번에 돌림
for i in numbers:
turn=[0,0,0,0] #돌아야 하는지 여부
clock=[0,0,0,0]#돌 방향
k=i[0]-1
l=i[1]
turn[k]=1
clock[k]=l #입력받은 돌릴꺼
while k<3: #오른쪽 톱니들 회전 체크
if gears[k][2]!=gears[k+1][6]:
k+=1
l*=-1 #방향 바꿔주고 톱니 설정
turn[k]=1
clock[k]=l
else:
break
k=i[0]-1 #k,l 초기화
l=i[1]
while k>0 : #왼쪽 톱니들 회전 체크
if gears[k][6]!=gears[k-1][2]:
k-=1
l*=-1
turn[k]=1
clock[k]=l
else:
break
for i,t in enumerate(turn): #돌리기 #아마 여기가 문제?
if t==1:
gears[i]=rotate(gears[i],clock[i])
return print(sum([gear[0]*(2**i)for i,gear in enumerate(gears)])) #답 출력
# 메인함수
gears=[list(map(int,list(input())))for _ in range(4)] #톱니 입력
len=int(input()) #몇번?
num = [list(map(int, input().split(' '))) for _ in range(len)] # 회전 입력
gear_turn(gears,num)
'알고리즘' 카테고리의 다른 글
[프로그래머스] 프린터 파이썬 (0) | 2021.05.17 |
---|---|
[프로그래머스][카카오 2018] 뉴스 클러스터링 (0) | 2021.05.15 |
문제 풀때 주의사항 (프로그래머스 - 짝지어 제거하기 with Python) (0) | 2021.05.12 |
코딩테스트 주의사항 (0) | 2021.05.03 |
[Programmers] 전화번호 목록 (0) | 2021.04.23 |
Comments