2022년 12월 28일에 작성됨
https://www.acmicpc.net/problem/5566
5566번: 주사위 게임
상근이는 혼자 보드 게임을 하고 있다. 이 보드 게임의 보드는 N칸으로 이루어져 있고, 출발점은 1칸, 도착점은 N칸이다. 각 칸에는 지시 사항이 적혀있다. 지시 사항은 말을 얼만큼 이동해야 하
www.acmicpc.net
문제 분석
주사위를 굴린 수와 나온 눈의 수만큼 이동했을 때 도착한 칸에 있는 수를 구분하여 생각해준다.
소스 코드 (⭕)
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
board = []
dice = []
corrent = 0 # 현재 위치
move = 0 # 도착 칸에 있는 이동할 거리
for i in range(0, n):
board.append(int(input()))
for j in range(0, m):
dice.append(int(input()))
for k in range(1, m+1):
corrent += dice[k-1]
if corrent+1 >= n:
print(k)
break
move = board[corrent]
corrent += move
if corrent+1 >= n:
print(k)
break
코드 분석
1. 보드 도착점 n칸과 주사위 던진 횟수 m을 입력받는다.
2. n과 m만큼 각각 입력받아 board와 dice 리스트에 넣어준다.
3. corrent는 현재 위치를 나타내고, move는 주사위를 굴렸을 때 도착 칸에 있는 이동할 거리를 나타낸다.
4. 1부터 m번까지 반복하는데 주사위 dice 값 만큼 corrent에 더해주는데 만약, 도착점 n을 넘어서면 그대로 k를 출력하고 반복문 탈출한다.
5. 아니라면 도착 칸의 이동할 위치 move를 corrent에 더해주고, 이 값이 다시 n을 넘어서면 반복문 빠져나온다.
end
처음에 corrent와 move 변수의 의미가 조금 헷갈렸었지만 생각보다 재밌고 좋은 문제였다!
'코딩테스트 & 문제 풀이' 카테고리의 다른 글
[Python]백준_5426 : 비밀 편지 (2) | 2023.11.10 |
---|---|
[Python]백준_5211 : 가단조와 다장조 (4) | 2023.11.10 |
[Python]백준_13301 : 타일 장식물 (2) | 2023.11.09 |
[Python]백준_17358 : 복불복으로 지구 멸망 (2) | 2023.11.09 |
[Python]백준_25373 : 벼락치기 (1) | 2023.11.08 |
2022년 12월 28일에 작성됨
https://www.acmicpc.net/problem/5566
5566번: 주사위 게임
상근이는 혼자 보드 게임을 하고 있다. 이 보드 게임의 보드는 N칸으로 이루어져 있고, 출발점은 1칸, 도착점은 N칸이다. 각 칸에는 지시 사항이 적혀있다. 지시 사항은 말을 얼만큼 이동해야 하
www.acmicpc.net
문제 분석
주사위를 굴린 수와 나온 눈의 수만큼 이동했을 때 도착한 칸에 있는 수를 구분하여 생각해준다.
소스 코드 (⭕)
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
board = []
dice = []
corrent = 0 # 현재 위치
move = 0 # 도착 칸에 있는 이동할 거리
for i in range(0, n):
board.append(int(input()))
for j in range(0, m):
dice.append(int(input()))
for k in range(1, m+1):
corrent += dice[k-1]
if corrent+1 >= n:
print(k)
break
move = board[corrent]
corrent += move
if corrent+1 >= n:
print(k)
break
코드 분석
1. 보드 도착점 n칸과 주사위 던진 횟수 m을 입력받는다.
2. n과 m만큼 각각 입력받아 board와 dice 리스트에 넣어준다.
3. corrent는 현재 위치를 나타내고, move는 주사위를 굴렸을 때 도착 칸에 있는 이동할 거리를 나타낸다.
4. 1부터 m번까지 반복하는데 주사위 dice 값 만큼 corrent에 더해주는데 만약, 도착점 n을 넘어서면 그대로 k를 출력하고 반복문 탈출한다.
5. 아니라면 도착 칸의 이동할 위치 move를 corrent에 더해주고, 이 값이 다시 n을 넘어서면 반복문 빠져나온다.
end
처음에 corrent와 move 변수의 의미가 조금 헷갈렸었지만 생각보다 재밌고 좋은 문제였다!
'코딩테스트 & 문제 풀이' 카테고리의 다른 글
[Python]백준_5426 : 비밀 편지 (2) | 2023.11.10 |
---|---|
[Python]백준_5211 : 가단조와 다장조 (4) | 2023.11.10 |
[Python]백준_13301 : 타일 장식물 (2) | 2023.11.09 |
[Python]백준_17358 : 복불복으로 지구 멸망 (2) | 2023.11.09 |
[Python]백준_25373 : 벼락치기 (1) | 2023.11.08 |