Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- nestjs
- 개발자취업
- Python
- 유노코딩
- 방송대컴퓨터과학과
- SQL
- 항해99
- JavaScript
- 파이썬프로그래밍기초
- MySQL
- 코드잇
- Git
- redis
- 파이썬
- node.js
- 중간이들
- 데이터베이스시스템
- CSS
- 코딩테스트
- 자격증
- Cookie
- 코딩테스트준비
- TiL
- 엘리스sw트랙
- 99클럽
- aws
- 꿀단집
- 프로그래머스
- 방송대
- HTML
Archives
- Today
- Total
배꼽파지 않도록 잘 개발해요
99클럽 코테 스터디 27일차 TIL - 공원 산책 본문
function solution(park, routes) {
// 방향을 벡터 이동으로 매핑
const directionMap = {
'N': [-1, 0], // 북쪽: x축 -1, y축 변화 없음
'S': [1, 0], // 남쪽: x축 +1, y축 변화 없음
'W': [0, -1], // 서쪽: x축 변화 없음, y축 -1
'E': [0, 1] // 동쪽: x축 변화 없음, y축 +1
};
// 시작 위치 찾기
let startX, startY;
for (let i = 0; i < park.length; i++) {
for (let j = 0; j < park[i].length; j++) {
if (park[i][j] === 'S') { // 'S'는 시작 위치를 나타냄
startX = i;
startY = j;
break;
}
}
if (startX !== undefined) break; // 시작 위치를 찾으면 루프 종료
}
// 현재 위치 초기화
let curX = startX;
let curY = startY;
// 각 명령어 처리
for (let route of routes) {
const [direction, distanceStr] = route.split(' ');
const distance = parseInt(distanceStr); // 이동 거리
const [dx, dy] = directionMap[direction]; // 방향에 따른 이동 벡터
// 이동이 유효한지 확인
let newX = curX;
let newY = curY;
let validMove = true;
for (let i = 0; i < distance; i++) {
newX += dx;
newY += dy;
// 경계와 장애물 확인
if (newX < 0 || newX >= park.length || // 공원을 벗어나는지 확인
newY < 0 || newY >= park[0].length || // 공원을 벗어나는지 확인
park[newX][newY] === 'X') { // 장애물 'X'인지 확인
validMove = false;
break;
}
}
// 이동이 유효하면 위치 업데이트
if (validMove) {
curX = newX;
curY = newY;
}
}
// 최종 위치 반환
return [curX, curY];
}
728x90
'코딩테스트 > 99클럽' 카테고리의 다른 글
99클럽 코테 스터디 29일차 TIL - Missing Number (0) | 2024.08.20 |
---|---|
99클럽 코테 스터디 28일차 TIL - 프로세스 (0) | 2024.08.19 |
99클럽 코테 스터디 26일차 TIL - 바탕화면 정리 (0) | 2024.08.17 |
99클럽 코테 스터디 25일차 TIL - Find if Path Exists in Graph [BFS] (0) | 2024.08.15 |
광복절 맞이 아스키 아트(ASCII Art) 그리기 - 태극기 들고 있는 루피 (0) | 2024.08.15 |