[알고리즘 문제] 가장 가까운 같은 글자

Z_제트·2024년 1월 17일
0

코드 초기화 ↓

using System;

public class Solution {
    public int[] solution(string s) {
        int[] answer = new int[] {};
        return answer;
    }
}

나의 풀이 ↓

using System;
using System.Linq; 

public class Solution
{
    public int[] solution(string s) 
    {
        int[] answer = new int[s.Length];
        char[] charArr = new char[s.Length];
        int index = 0;
        int sub = 0;
        
        // s 길이 만큼 for loop 돌기
        for (int i = 0; i < s.Length; i++)
        {
            // 배열에 중복 글자가 있는지 체크 - Contains
            if (charArr.Contains(s[i])) // 중복 있으면 몇칸 앞에 있는지 수를 리턴
            {
                // 중복 글자가 여러 개 있다면 나랑 가까운 인덱스 있는걸 델꼬 와야함 !!!! 
                index = Array.LastIndexOf(charArr, s[i]); // Array.IndexOf 사용하면 안될듯 / LastIndexOf 도전
                sub = i - index;
                answer[i] = sub;
                charArr[i] = s[i];
            }
            else // 중복 없으면 -1 리턴
            {
                answer[i] = -1;
                charArr[i] = s[i];
            }                       
        }
        
        return answer;
    }
}

처음에 using System.Linq; 없이 코드를 작성하면 아래와 같이 에러 문구가 떴다.

Contains 쪽에서 문제가 있는거 같은데
대체 뭐가 문제일까 검색을 해보니 그냥 using System.Linq; 추가해주면 된다고 해서 시도해보니까 진짜 되네..?
왜 되는거지..?

일단 어찌저찌 오늘의 문제 해결 완료...!


새롭게 배운 것s :

  • Array.LastIndexOf()
  • overload 와 Contains 에 문제가 있다면 Linq 를 추가해보기..
profile
trying to make the world a better place with a cool head and warm heart

0개의 댓글