소스 코드
def move(num,location):
global loc
global cnt
# 현재 위치 + 주사위 숫자가 n-1보다 작으면
if location+num < n-1:
# 현재 위치 + 주사위 숫자 + 보드 판에 적혀있는 숫자
loc = location + num + board[location+num]
# n-1 이상이면
else:
# 현재 위치 + 주사위 숫자
loc = location + num
cnt += 1
return
n,m = map(int,input().split())
# 게임판
board = [int(input()) for _ in range(n)]
# 움직여야 할 숫자
dice = [int(input()) for _ in range(m)]
# 현재 위치
loc = 0
# 주사위 몇 번 사용했는지
cnt = 0
for q in dice:
# 게임판의 크기는 n이므로 마지막 index값은 n-1임
# 마지막에 도달하거나, 그 이상 숫자가 나오지 않은 경우
if loc < n-1:
move(q,loc)
else:
break
print(cnt)
해결 방법
1. 보드 판에 적혀있는 숫자만큼 1회만 움직이면 됨
느낀 점
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.
'코딩 문제해결 > 문제 풀이.백준' 카테고리의 다른 글
[BOJ/백준 코딩] 연산자 끼워넣기 - PYTHON #14888 (0) | 2021.02.24 |
---|---|
[BOJ/백준 코딩] 컨베이어 벨트 위의 로봇 - PYTHON #20055 (0) | 2021.02.23 |
[BOJ/백준 코딩] 섬의 개수 - PYTHON #4963 (0) | 2021.02.21 |
[BOJ/백준 코딩] 치킨 배달 - PYTHON #15686 (0) | 2021.02.20 |
[BOJ/백준 코딩] 안전 영역 - PYTHON #2468 (0) | 2021.02.19 |