csct3434
[level 2] 조이스틱 - 42860 본문
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
class Solution {
private int answer = Integer.MAX_VALUE;
public int solution(String name) {
solve(name, "A".repeat(name.length()), 0, 0);
return answer;
}
private void solve(String correctName, String currentName, int pos, int count) {
count += Math.min(Math.abs(correctName.charAt(pos) - currentName.charAt(pos)),
Math.abs(currentName.charAt(pos) + 26 - correctName.charAt(pos)));
char[] charArray = currentName.toCharArray();
charArray[pos] = correctName.charAt(pos);
String nextName = new String(charArray);
if (nextName.equals(correctName)) {
answer = Math.min(answer, count);
return;
}
for (int i = 1; i < correctName.length(); i++) {
int index = (pos + correctName.length() - i) % correctName.length();
if (nextName.charAt(index) != correctName.charAt(index)) {
solve(correctName, nextName, index, count + i);
break;
}
}
for (int i = 1; i < correctName.length(); i++) {
int index = (pos + correctName.length() + i) % correctName.length();
if (nextName.charAt(index) != correctName.charAt(index)) {
solve(correctName, nextName, index, count + i);
break;
}
}
}
}
'프로그래머스' 카테고리의 다른 글
[level 2] 구명보트 - 42885 (0) | 2024.02.28 |
---|---|
[level 2] 큰 수 만들기 - 42883 (0) | 2024.02.28 |
[level 2] 카펫 - 42842 (0) | 2024.02.28 |
[level 2] 소수 찾기 - 42839 (0) | 2024.02.28 |
[level 2] H-Index - 42747 (0) | 2024.02.28 |