티스토리 뷰

 

이번 문제는 성공률이 31퍼센트이길레 긴장하고 들어갔는데 생각보다 문제 해결방법이 간단해 보여 바로 해결되었다.

나의 풀이 방법은 다음과 같다.

 

  1. 비교 문자열 배열을 만든다. ("aya", "ye", "woo", "ma")
  2. 반복문으로 모든 옹알이 배열을 탐색한다.
  3. 각 옹알이 문자열이 비교 문자열을 포함하고 있는지 확인한다. (Contains)
  4. 옹알이 문자열에 비교 문자열이 포함되어있다면 비교 문자열의 크기를 저장한다.
    • 옹알이 문자열("ayaye")에 비교 문자열("aya")를 비교하면 문자열에 "aya"가 포함되는걸 확인할 수 있다.
    • 비교 문자열("aya") 길이 3을 변수에 저장한다.
    • 옹알이 문자열("ayaye")에 비교 문자열("ye")를 비교하면 문자열에 "ye"가 포함되는걸 확인할 수 있다.
    • 비교 문자열("ye") 길이 2을 변수에 추가로 저장하여 총 길이가 5가 된다.
  5. 옹알이 문자열 크기와 비교 연산으로 확인된 크기가 동일하면 정답에 포함된다.
    • "ayaye" 크기 5, "aya" + "ye" 크기 5 = 정답
    • "ayayee" 크기 6, "aya" + "ye" 크기 6 = 오답

 

using System;

public class Solution {
    public int solution(string[] babbling) {
        string[] speak = new string[4] {"aya", "ye", "woo", "ma"};
        int answer = 0;
        
        foreach (string words in babbling) {
            int length = 0;
            
            foreach (string compare in speak)
                if (words.Contains(compare)) length += compare.Length;
            
            if (words.Length == length) answer++;
        }
        
        return answer;
    }
}

 

다른 분들의 풀이로 읽었을때 Replace를 통해 잔여 문자열이 없는 경우 정답으로 만드는 분들도 있고

정말 Brute force한 방법으로 연산 하시는 분들도 있었다.

최근에 올라온 글
최근에 달린 댓글
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함