머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다.
조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다.
문자열 배열 babbling이 매개변수로 주어질 때,
머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.
<제한사항>
1 ≤ babbling의 길이 ≤ 100
1 ≤ babbling[i]의 길이 ≤ 15
babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다.
즉, 각 문자열의 가능한 모든 부분 문자열 중에서 "aya", "ye", "woo", "ma"가 한 번씩만 등장합니다.
문자열은 알파벳 소문자로만 이루어져 있습니다.
<입출력 예>
(babbling) (result)
["aya", "yee", "u", "maa", "wyeoo"] 1
["ayaye", "uuuma", "ye", "yemawoo", "ayaa"] 3
유의사항
네 가지를 붙여 만들 수 있는 발음 이외에는 어떤 발음도 할 수 없는 것으로 규정합니다.
예를 들어 "woowo"는 "woo"는 발음할 수 있지만 "wo"를 발음할 수 없기 때문에 할 수 없는 발음입니다.
class Solution {
public int solution(String[] babbling) {
int answer = 0;
String[] str = {"aya","ye","woo","ma"};
String[] str4 = new String[24];
for(String s : babbling) {
for(int i=0; i<str.length; i++) {
if(s.equals(str[i])) answer++;
for(int j=i+1; j<str.length; j++) {
if(s.equals(str[i]+str[j])) answer++;
if(s.equals(str[j]+str[i])) answer++;
for(int k=i+2; k<str.length; k++) {
if(s.equals(str[i]+str[j]+str[k])) answer++;
if(s.equals(str[i]+str[k]+str[j])) answer++;
if(s.equals(str[k]+str[j]+str[i])) answer++;
if(s.equals(str[k]+str[i]+str[j])) answer++;
if(s.equals(str[j]+str[i]+str[k])) answer++;
if(s.equals(str[j]+str[k]+str[i])) answer++;
}
}
}
}
int n=0;
for(int a=0; a<str.length; a++) {
for(int b=0; b<str.length; b++) {
if(b==a) b++;
if(b==4) break;
for(int c=0; c<str.length; c++) {
if(c==a || c==b) c++;
if(c==a || c==b) c++;
if(c==4) break;
for(int d=0; d<str.length; d++) {
if(d==a || d==b || d==c) d++;
if(d==a || d==b || d==c) d++;
if(d==a || d==b || d==c) d++;
if(d==4) break;
str4[n++] = str[a]+str[b]+str[c]+str[d];
}
}
}
}
for(String s : babbling) {
for(int i=0; i<str4.length; i++) {
if(s.equals(str4[i])) answer++;
}
}
return answer;
}
이거 안 돼서 싹 다 지우고 아예 다른 방법으로 풀었으니까
다른 방법으로 풀으라는 이상한 소리는 하지 말고
난 그냥 이게 왜 안 되는지 그 이유를 알고 싶은거
이 코드의 반례가 무엇인지 어느 부분이 논리에 들어맞지 않는지
알 수 있는 코딩 씹초고수 나 좀 알려줘
접근도 못하겠으니 뒤로가기 누르겠습니다
그래 좀 어려운거니까 너무 실망하지는 않아도 됨
4중 for문 ㄷㄷ;
이등변 삼각형 별 찍는 2중 for문도 힘들어하는 보통의 초보들은 접근하기 좀 힘들긴 해
일단 가독성이 ㅈ박아서 읽기가 싫음, 변수도 대충지어서. 문제접근은 걍 재귀 돌려서 맞으면 전역변수로 값올리면 되는 쉬운문제임 이상임.
일단 막줄도 못 읽고 하지 말라는 헛소리 하고 있는거 보니까 내 가독성보다는 니 난독이 문제인 것 같아서 다행임
게이야 다시 보니까 처음 4중포문에서 마지막 k포문에서 시작값을 i+2로 줬네 그래서 중복이 나옴 i j k라고할 때 0 1 2~3 0 2 1~3 보이지? 0 2 2되는거 이상임.
오.. 너 생각보다 꽤 하는 친구였구나? 제법인데
이거 걍 replace쓰면 되는디
ㅇㅇ.. 사실 이새끼 걍 병신이라 어디까지 까부나 보는중