일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- background setInterval
- hook
- react-helmet
- Nextjs
- Javascript
- Render Props
- react
- Nextjs React 18
- Babel
- React 18 Nextjs
- getUTCDate
- Programmers
- React 18
- context
- codingtest
- react hook
- React 공식문서
- background tab
- React 고급 안내서
- Next13
- 고급안내서
- background: url
- React 고급안내서
- React18
- RTK Query
- notFound()
- React API 참고서
- background setttimeout
- next13 head
- CSS
Archives
- Today
- Total
akjfal
[Programmers] 방문 길이 본문
// 좌표평면 길이는 고정
// 좌표평면을 벗어나는 것은 무시
// 처음 가는 길을 구한다.
// hashmap에 a -> b 이동 좌표를 적는다.
// b -> a도 같이 넣는다.
// map.size를 구한다.
import java.util.HashMap;
class Solution {
public int solution(String dirs) {
int answer = 0;
int startY = 0, startX = 0;
HashMap<String, Integer> map = new HashMap<>();
for(String m : dirs.split("")){
int arriveY = moveY(startY, m);
int arriveX = moveX(startX, m);
if(isMove(arriveY, arriveX)){
String go = String.valueOf(startY) + String.valueOf(startX) + String.valueOf(arriveY) + String.valueOf(arriveX);
String reverse = String.valueOf(arriveY) + String.valueOf(arriveX) + String.valueOf(startY) + String.valueOf(startX);
map.put(go, 0);
map.put(reverse, 0);
startY = arriveY;
startX = arriveX;
}
}
answer = map.size()/2;
return answer;
}
public boolean isMove(int y, int x){
if(y > 5 || y < -5 || x > 5 || x < -5)
return false;
return true;
}
public int moveY(int y, String move){
switch(move){
case "U":{
return y-1;
}
case "R":{
return y;
}
case "D":{
return y+1;
}
case "L":{
return y;
}
}
return y;
}
public int moveX(int x, String move){
switch(move){
case "U":{
return x;
}
case "R":{
return x+1;
}
case "D":{
return x;
}
case "L":{
return x-1;
}
}
return x;
}
}
.
구현 문제풀이에 정말 괜찬은 문제라고 생각한다. 쉬운편이다.
'알고리즘 > programmers' 카테고리의 다른 글
[Programmers] [3차] 방금 그곡 (0) | 2021.06.22 |
---|---|
[Programmers] 가장 큰 정사각형 찾기 (0) | 2021.06.22 |
[Programmers] 점프와 순간 이동 (0) | 2021.06.20 |
[Programmers] [1차] 캐시 (0) | 2021.06.19 |
[Programmers] 이진 변환 반복하기 (0) | 2021.06.19 |
Comments