TIL Java
내일배움캠프 27일차 TIL _ 6주 3일차
mad038
2024. 5. 22. 22:06
- 오늘 있었던 일
- 개인과제
- 알고리즘
SPRIONG
- 스프링 정리
알고리즘 문제 풀기
● 옹알이 (2)
더보기
● 옹알이 (2) //링크
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
class Solution {
public int solution(String[] babbling) {
String [] word = {"aya", "ye", "woo", "ma"};
String num = "^[0-9]*$";
int answer =0;
for (String s : babbling) {
int test = 0;
while (true) {
int z = 0;
for (int i = 0; i < word.length; i++) {
List<String> words = new ArrayList<>( Arrays.asList( s.split( "")));
String w = word[i];
int index = s.indexOf( w );
if(index != -1){
if(index != 0){
if(words.get( index - 1 ).equals(i+"")){
test++;
}
}
words.set(index,i+"");
words.subList(index+1, index + w.length()).clear();
}else {
z++;
continue;
}
s = String.join("", words);
}
if(test >= 1 || z >= 4){
break;
} else if (s.matches(num)) {
answer++;
break;
}
}
}
return answer;
}
}
- 문제 지문의
- "yeye"는 같은 발음이 연속되므로 발음할 수 없습니다. 따라서 2를 return합니다.
- 동일 문은 못들어온다.
- replace문으로 해당 단어들을 지웠지만 yeye같은 반복문을 고려하지 못했다.
- 인덱스를 이용해 이전 단어가 다시 들어오면 끝내도록 만들었다.
-
String w = word[i]; int index = s.indexOf( w ); if(index != -1){ if(index != 0){ if(words.get( index - 1 ).equals(i+"")){ test++; } } words.set(index,i+"");
- 밑은 다른 사람의 풀이
-
class Solution { public int solution(String[] babblings) { // "aya", "ye", "woo", "ma" 4가지 발음만 가능 int answer = 0; for(int i = 0; i < babblings.length; i++) { if(babblings[i].contains("ayaaya") || babblings[i].contains("yeye") || babblings[i].contains("woowoo") || babblings[i].contains("mama")) { continue; } babblings[i] = babblings[i].replace("aya", " "); babblings[i] = babblings[i].replace("ye", " "); babblings[i] = babblings[i].replace("woo", " "); babblings[i] = babblings[i].replace("ma", " "); babblings[i] = babblings[i].replace(" ", ""); if(babblings[i].length() == 0) answer++; } return answer; } }
- ㅇ? ㅇ?????? babblings[i].contains("yeye") 이따위 문으로 스킵을 넘겼다고? 아니 잠만 이거 넘어넘 아니 ㅡ으아니 한시간 내내 고민했었는데 이렇게도 yeyeye 3번 나와도 되긴 한데 아니 으아아.
당일 회고
- 오늘 하루종일 집중못했다... 난 쓰랡