풀이
import java.util.HashSet;
class Solution {
public int solution(String dirs) {
int answer = 0;
int x = 0, y = 0, nextX = 0, nextY = 0;
HashSet<String> set = new HashSet<>();
for(int i=0; i<dirs.length(); i++){
char a = dirs.charAt(i);
if(a == 'U' && nextY+1 <= 5){
nextY++;
}else if(a == 'D' && nextY-1 >= -5){
nextY--;
}else if(a == 'L' && nextX-1 >= -5){
nextX--;
}else if(a == 'R' && nextX+1 <= 5){
nextX++;
}
// 범위 넘어가면 건너뛰기
if(x==nextX && y == nextY){
continue; // 뒤에 생략
}
set.add(x + "" + y + "" + nextX + "" + nextY);
set.add(nextX + "" + nextY + "" + x + "" + y);
x = nextX;
y = nextY;
}
answer = set.size()/2;
return answer;
}
}
결과
'코딩 문제 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 코딩테스트 - Level1 - 핸드폰 번호 가리기 (0) | 2021.02.26 |
---|---|
프로그래머스 - 코딩테스트 - Level1 - 짝수와 홀수 (0) | 2021.02.26 |
프로그래머스 - 코딩테스트 - Level1 - 소수 찾기 (0) | 2021.02.26 |
프로그래머스 - 코딩테스트 - Level1 - 서울에서 김서방 찾기 (0) | 2021.02.26 |
프로그래머스 - 코딩테스트 - Level1 - 문자열 내 마음대로 정렬하기 (0) | 2021.02.26 |