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
- 자바
- 배열
- 3273
- 패스트캠퍼스
- 코딩테스트
- 파이썬
- java11
- 소금폭탄
- DockerDesktop
- 수정렬하기3
- BOJ
- intelij
- sql문법
- java
- 노션
- 코딩교육
- 스프링부트시작
- 알고리즘
- 자바스크립트
- 개발포트폴리오
- springboot
- fastcampus
- 코테
- 10989
- SQL
- 백준
- 코딩자격증
- 프로그래머스
- 패캠
- 패스트캠퍼스후기
Archives
- Today
- Total
기록용 블로그
[프로그래머스][LV1] 공원 산책 본문
https://school.programmers.co.kr/learn/courses/30/lessons/172928
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
방향성이 있는 경우
x, y 쪼개서 천천히 풀기
import java.util.*;
class Solution {
public int[] solution(String[] park, String[] routes) {
int startX = 0;
int startY = 0;
int parkHeight = park.length;
int parkWidth = park[0].length();
for (int i = 0; i < parkHeight; i++) {
for (int j = 0; j < parkWidth; j++) {
if (park[i].charAt(j) == 'S') {
startX = i;
startY = j;
break;
}
}
}
int x = startX;
int y = startY;
for (String route : routes) {
char direction = route.charAt(0);
int steps = Integer.parseInt(route.substring(2));
int newX = x;
int newY = y;
boolean validMove = true;
for (int i = 1; i <= steps; i++) {
switch (direction) {
case 'N':
newX--;
break;
case 'S':
newX++;
break;
case 'W':
newY--;
break;
case 'E':
newY++;
break;
}
if (newX < 0 || newX >= parkHeight || newY < 0 || newY >= parkWidth || park[newX].charAt(newY) == 'X') {
validMove = false;
break;
}
}
if (validMove) {
x = newX;
y = newY;
}
}
return new int[]{x, y};
}
}'개발 > 알고리즘 공부' 카테고리의 다른 글
| [알고리즘] 시간복잡도 (0) | 2023.04.20 |
|---|---|
| [프로그래머스][LV1] 덧칠하기 (0) | 2023.04.06 |
| [프로그래머스][LV1] 바탕화면 정리 (0) | 2023.04.06 |
| [BOJ1919] 애너그램 만들기 (0) | 2023.04.05 |
| [boj13223] 소금폭탄 (0) | 2023.04.05 |