1651: (심화) 매번 새로운 미로 게임
[만든사람 : 이건우]
문제 설명
시드란?
매번 무작위 미로를 만들기 위해 시드라는 개념을 사용한다.
좌표는 0부터 3까지 존재하며
왼쪽에서 오른쪽으로 증가
위에서 아래로 증가 한다고 가정한다. (즉, 0,0은 좌측 상단, 3,3은 우측 하단이다.)
도착지점 1개
출발지점 1개
장애물 1개
시드는 무작위 정수 7자리수
(범위: 1000000 ~ 9999999)
시드를 S라고 가정했을 때
도착지점 x좌표 난수 생성식: (S*5)%4
도착지점 y좌표 난수 생성식: (S*10+3)%4
출발지점 x좌표 난수 생성식: (S+3)%4
출발지점 y좌표 난수 생성식: (S-30)%4
장애물 x좌표 난수 생성식: S%4
장애물 y좌표 난수 생성식: (S*17)%4
예를들어 장애물의 시드가 1234567 이라고 가정하면
장애물의 좌표는 (1234567*17)%4 , 1234567%4
계산해보면 3,3 이다.
R = 오른쪽 (x축 +1)
L = 왼쪽 (X축 -1)
U = 위쪽 (Y축 -1)
D = 아래쪽 (Y축 +1)
도착지점, 출발지점은 겹치는 경우가 없다. (수학적으로 검증됨)
장애물이 출발지점 혹은 도착지점이랑 겹칠경우 장애물을 삭제한다.
다음과 같은 상황이 존재한다.
성공 - 시작 지점에서 도착지점까지 이동이 성공할 때
실패 - 시작 지점에서 도착지점까지 이동이 실패할 때
게임에서 "시드(seed)"는 보통 난수 생성의 기초가 되는 초기값을 의미합니다. 난수 생성기는 시드를 기반으로 하여 일련의 예측 불가능한 숫자(난수)를 생성합니다.
다른 시드 값으로 난수 생성기를 시작하면, 매번 다른 난수 시퀀스가 생성됩니다. 이 특성 덕분에 시드는 게임을 실행할 때 마다 무작위 다른 상황을 재연할 수 있습니다.
매번 무작위 미로를 만들기 위해 시드라는 개념을 사용한다.
좌표는 0부터 3까지 존재하며
왼쪽에서 오른쪽으로 증가
위에서 아래로 증가 한다고 가정한다. (즉, 0,0은 좌측 상단, 3,3은 우측 하단이다.)
도착지점 1개
출발지점 1개
장애물 1개
시드는 무작위 정수 7자리수
(범위: 1000000 ~ 9999999)
시드를 S라고 가정했을 때
도착지점 x좌표 난수 생성식: (S*5)%4
도착지점 y좌표 난수 생성식: (S*10+3)%4
출발지점 x좌표 난수 생성식: (S+3)%4
출발지점 y좌표 난수 생성식: (S-30)%4
장애물 x좌표 난수 생성식: S%4
장애물 y좌표 난수 생성식: (S*17)%4
예를들어 장애물의 시드가 1234567 이라고 가정하면
장애물의 좌표는 (1234567*17)%4 , 1234567%4
계산해보면 3,3 이다.
R = 오른쪽 (x축 +1)
L = 왼쪽 (X축 -1)
U = 위쪽 (Y축 -1)
D = 아래쪽 (Y축 +1)
위의 시드가 1234567인 예시에서는 R 명령으로 한번만 움직이면 성공이다!
도착지점, 출발지점은 겹치는 경우가 없다. (수학적으로 검증됨)
장애물이 출발지점 혹은 도착지점이랑 겹칠경우 장애물을 삭제한다.
다음과 같은 상황이 존재한다.
성공 - 시작 지점에서 도착지점까지 이동이 성공할 때
실패 - 시작 지점에서 도착지점까지 이동이 실패할 때
장애물 - 이동하는 과정에서 4x4를 벗어나거나 장애물에 닿았을 때
입력 설명
첫줄에 시드가 입력이 된다. (1000000 ~ 9999999)
두번째 줄의 이동하는 횟수를 입력한다 (정수)
세번째 줄에 이동하는 횟수만큼 이동 방향을 입력받는다.
R, L, U, D 중에 하나가 입력이 된다.
두번째 줄의 이동하는 횟수를 입력한다 (정수)
세번째 줄에 이동하는 횟수만큼 이동 방향을 입력받는다.
R, L, U, D 중에 하나가 입력이 된다.
R = 오른쪽 (x축 +1)
L = 왼쪽 (X축 -1
U = 위쪽 (Y축 -1)
D = 아래쪽 (Y축 +1)
출력 설명
도착, 실패, 장애물 3개중에 하나가 출력이 된다.
도착 - 시작 지점에서 도착지점까지 이동이 성공할 때
실패 - 시작 지점에서 도착지점까지 이동이 실패할 때
장애물 - 이동하는 과정에서 4x4를 벗어나거나 장애물에 닿았을 때
도착 - 시작 지점에서 도착지점까지 이동이 성공할 때
실패 - 시작 지점에서 도착지점까지 이동이 실패할 때
장애물 - 이동하는 과정에서 4x4를 벗어나거나 장애물에 닿았을 때
입력 예시 Copy
3536442
4
D
D
D
R
출력 예시 Copy
성공