728x90
🔗 문제
💡 풀이
해당 문제는 문제 설명대로 구현하면 되는 문제이다.
접근 방식
- '원래 좌표 -> 움직인 좌표'와 '움직인 좌표 -> 원래 좌표'를 String에 저장하여 Set에 저장한다.
- 양방향으로 저장했기 때문에 Set.size / 2를 반환한다.
💻 코드
import java.util.*;
public class Solution {
private static final int MAX = 5;
private static final int MIN = -5;
Set<String> visited = new HashSet<>();
Map<Character, Integer[]> map = new HashMap<>();
public int solution(String dirs) {
int y = 0;
int x = 0;
init();
for (char dir : dirs.toCharArray()) {
int ny = y + map.get(dir)[0];
int nx = x + map.get(dir)[1];
if (nx > MAX || nx < MIN) {
continue;
}
if (ny > MAX || ny < MIN) {
continue;
}
visited.add(
y + String.valueOf(x) + ny + nx);
visited.add(
ny + String.valueOf(nx) + y + x);
x = nx;
y = ny;
}
return visited.size() / 2;
}
private void init() {
map.put('U', new Integer[]{0, 1});
map.put('D', new Integer[]{0, -1});
map.put('L', new Integer[]{-1, 0});
map.put('R', new Integer[]{1, 0});
}
}
728x90
'Algorithm > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 Lv2 - 가장 큰 정사각형 찾기 (0) | 2022.05.30 |
---|---|
[Java] 프로그래머스 Lv2 - [3차] 방금 그 곡 (2018 KAKAO BLIND RECRUITMENT) (0) | 2022.05.29 |
[Java] 프로그래머스 Lv2 - 스킬트리 (0) | 2022.04.15 |
[Java] 프로그래머스 Lv2 - 쿼드압축 후 개수 세기 (0) | 2022.04.13 |
[Java] 프로그래머스 Lv2 - n^2 배열 자르기 (0) | 2022.04.12 |