문제
문제 풀이
원큐를 활용하여 문제를 풀었다. 알파벳 소문자 a ~ z 까지 입력을 하고 skip 문자들만 별도로 제거를 하였다. 거기서 원하는 문자에서 index 만큼 + 하였을 때 나오는 값을 가지고 answer에 더해주었다.
나의 답안
public static String solution(String s, String skip, int index) {
StringBuilder sb = new StringBuilder();
Deque<Character> deque = new LinkedList<>();
for (int i = 'a'; i <= 'z'; i++) {
deque.add((char) i);
}
for (char c : skip.toCharArray()) {
deque.remove(c);
}
for (int i = 0; i < s.length(); i++) {
int count = index;
boolean target = false;
while (count != 0) {
if (s.charAt(i) == deque.peek()) {
target = true;
}
if (target) {
deque.add(deque.poll());
count--;
continue;
}
deque.add(deque.poll());
}
sb.append(deque.peek());
}
System.out.println(deque);
return sb.toString();
}
다른 답안
class Solution {
public String solution(String s, String skip, int index) {
StringBuilder answer = new StringBuilder();
for (char letter : s.toCharArray()) {
char temp = letter;
int idx = 0;
while (idx < index) {
temp = temp == 'z' ? 'a' : (char) (temp + 1);
if (!skip.contains(String.valueOf(temp))) {
idx += 1;
}
}
answer.append(temp);
}
return answer.toString();
}
}
'Programmers 문제풀이 > Lv.1' 카테고리의 다른 글
개인정보 수집 유효기간 (0) | 2023.03.29 |
---|---|
대충 만든 자판 (0) | 2023.03.28 |
성격 유형 검사하기 (0) | 2023.03.27 |
햄버거 만들기 (0) | 2023.03.27 |
신규 아이디 추천 (0) | 2023.03.24 |