HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
💌
JJong’s Archive
/
🤖
코딩테스트
/
회전방어

회전방어

성공여부
YES
걸린시간(분)
90
정리
문제출처
제로베이스
생성 일시
Apr 17, 2025 02:11 PM

1️⃣ 문제

 

2️⃣ 문제 해결 전략

 

3️⃣ 코드 및 설명

내 코드
function solution(N, enemies) { var answer = Infinity; var dir = [-1, 0, 1]; function getBonus(curDir, eneDir) { const dirDiff = Math.abs(curDir - eneDir); if (dirDiff === 0) { return 1; } else if (dirDiff === 1 || dirDiff === 3) { return 2; } else if (dirDiff === 2) { return 3; } } function dfs(curDir, score, curTime) { if (curTime > N) { answer = Math.min(answer, score); return; } for (let i = 0; i < 3; i++) { var newDir = curDir + dir[i]; if (newDir === -1) { newDir = 3; } else if (newDir === 4) { newDir = 0; } var newScore = score; for (let j = 0; j < 4; j++) { const bonus = getBonus(newDir, j); newScore += enemies[j][curTime - 1] * bonus; } dfs(newDir, newScore, curTime + 1); } } dfs(0, 0, 1); return answer; }
 
모범 코드
 
 

4️⃣ 시간복잡도