원본 : https://school.programmers.co.kr/learn/courses/30/lessons/49994
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
import java.util.*;
class Solution {
public int solution(String dirs) {
Set<String> set = new HashSet<>();
int preX;
int preY;
int nowX = 0;
int nowY = 0;
for (char dir : dirs.toCharArray()) {
preX = nowX;
preY = nowY;
if (dir == 'U') {
if (preY + 1 > 5 || preY + 1 < -5) {
continue;
}
nowY = preY + 1;
} else if (dir == 'D') {
if (preY - 1 > 5 || preY - 1 < -5) {
continue;
}
nowY = preY - 1;
} else if (dir == 'L') {
if (preX - 1 > 5 || preX - 1 < -5) {
continue;
}
nowX = preX - 1;
} else if (dir == 'R') {
if (preX + 1 > 5 || preX + 1 < -5) {
continue;
}
nowX = preX + 1;
}
set.addAll(Arrays.asList(getString(preX, preY, nowX, nowY)));
}
return set.size() / 2;
}
public String[] getString(int preX, int preY, int nowX, int nowY) {
String[] result = new String[2];
StringBuilder sb = new StringBuilder();
sb.append("(").append(preX).append(", ").append(preY).append(")")
.append(" -> ")
.append("(").append(nowX).append(", ").append(nowY).append(")");
result[0] = sb.toString();
sb = new StringBuilder();
sb.append("(").append(nowX).append(", ").append(nowY).append(")")
.append(" -> ")
.append("(").append(preX).append(", ").append(preY).append(")");
result[1] = sb.toString();
return result;
}
}
가장 큰 정사각형 찾기 (연습문제) (0) | 2022.07.28 |
---|---|
[3차] 방금그곡 (2018 KAKAO BLIND RECRUITMENT) (0) | 2022.07.27 |
스킬트리 (Summer/Winter Coding(~2018)) (0) | 2022.07.27 |
쿼드압축 후 개수 세기 (월간 코드 챌린지 시즌1) (0) | 2022.07.27 |
n^2 배열 자르기 (월간 코드 챌린지 시즌3) (0) | 2022.07.27 |
댓글 영역