Skip to main content
Create new
Introduction
Reactivity
Props
Logic
Events
Bindings
Lifecycle
Stores
Motion
Transitions
Animations
Easing
SVG
Actions
Classes
Component composition
Context API
Special elements
Module context
Debugging
7GUIs
Miscellaneous
App.svelte
Tile.svelte
<script>
import Tile from './Tile.svelte'
let name = 'DP';
//맵 정보 초기화
let maps = new Array(4).fill(0).map(() => new Array(6).fill(' '));
//플레이어 초기 위치
const player={"i":maps.length-1, "j":0};
//목적지 초기 위치
const dest={"i":0, "j":maps[0].length-1};
//이동 비용
const moveCost=1;
//아이콘 별 점수 *주의: 양의 점수는 이동 비용을 넘어선 안 됨
const bonus={' ':0, '💰':1, '☠️':-1, '🏁':0};
//목적지 설정
maps[dest.i][dest.j]='🏁';
//최선의 경로
let maxPath=[];
//최선의 점수. 초깃값이 0이어야 값이 올바르게 갱신됨.
let maxScore=-Infinity;
//전수조사를 하므로 동적 계획법을 사용
function dpSearch()
{
//가로 세로 초기화
let width=maps[0].length, height=maps.length;
//동적 계획법에 사용할 베열인 dp 초기화. dp는 maps의 상하 반전ㅇ,로, 각 칸에서 최선의 점수가 들어간다.
let dp =new Array(height).fill(0).map(() => new Array(width).fill(0));
//상하반전시 인덱스 처리에 도움을 주는 함수
let upsideDown=(i)=>height-1-i;
//각 칸마다 선택한 최선의 (직전) 경로를 저장 하는 배열
let chosenDirection=new Array(height).fill(0).map(() => new Array(width).fill(''));
//검색할 대각선의 수
let maxDiagonal=width+height;
//대각선을 1부터 maxDiagonal-1까지 '/' 모양으로 검색. 대각선0번인 dp[0,0]은 0이므로 검색 불요.
for (let d=1; d<maxDiagonal;d++)
{
loading Svelte compiler...
/* Select a component to see its compiled code */
result = svelte.compile(source, {
generate: ,
});
/* Select a component to see its compiled code */