내일배움캠프 26일차 TIL _ 6주 2일차
2024. 5. 21. 22:22ㆍTIL Java
- 오늘 있었던 일
- 개인과제
- 알고리즘
SPRIONG
- 스프링 정리
알고리즘 문제 풀기
● 둘만의 암호
더보기
● 둘만의 암호 //링크
class Solution {
public String solution(String s, String skip, int index) {
int one =0;
String two = "";
for (String sc : s.split("")) {
skip.indexOf( sc );
one = sc.charAt(0);
for (int i = 0; i < index; i++) {
one++;
if (one > 122) {
one = (one - 122) +96;
}
char c = (char) one;
if (skip.indexOf( c ) != -1) {
i--;
}
}
if (one > 122) {
one = (one - 122) +96;
}
two += String.valueOf( (char) one );
}
return two;
}
}
- 태스트 문은 통과했는데 왜 정답문에선 하나도 맞지 않을까?
- one이 122을 넘을 경우 97으로 초기화를 먼저 해줬어야했었다.
- for문의 순서를 잘못했다.
-
for (int i = 0; i < index; i++) { char c = (char) one; if (skip.indexOf( c ) != -1) { i--; } if (one > 122) { one = (one - 122) +96; } one++; }
- 이게 맞는문
-
for (int i = 0; i < index; i++) { one++; if (one > 122) { one = (one - 122) +96; } char c = (char) one; if (skip.indexOf( c ) != -1) { i--; } }
- one이 122을 넘을 경우 97으로 초기화를 먼저 해줬어야했었다.
- 밑은 다른 사람의 풀이
-
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(); } }
- 중간 for문에 i값을 줄인 나와 다르게 if (!skip.contains(String.valueOf(temp))) 으로 스킵을 넘겼다.
당일 회고
- 스프링... 14시간?!
'TIL Java' 카테고리의 다른 글
내일배움캠프 28일차 TIL _ 6주 4일차 (0) | 2024.05.23 |
---|---|
내일배움캠프 27일차 TIL _ 6주 3일차 (0) | 2024.05.22 |
내일배움캠프 25일차 TIL _ 6주 1일차 (0) | 2024.05.20 |
내일배움캠프 24일차 WIL _ 5주 5일차 (0) | 2024.05.19 |
내일배움캠프 23일차 TIL _ 5주 4일차 (0) | 2024.05.17 |