728x90
SMALL

/// var 암묵적 타입 변수. 아직 어떤 형태의 변수를 정의할 지 안 정해져 있을 때 사용한다고 알고 있다.

 

 

 

using System;
using System.Collections.Generic;

public class Solution
{
    public int[] solution(string s)
    {
        var result = new int[s.Length];
        var strDic = new Dictionary<char, int>();

 

        // i번째 글자가 딕셔너리에 포함되어 있지 않으면 넣어준다.
        for(int i = 0; i<s.Length; i++)
        {
            if(strDic.ContainsKey(s[i]) == false) // dictionary에 s[i]문자가 포함되어 있지 않으면
            {
                result[i] = -1; //결과를 1로 한다.
                strDic[s[i]] = i; // 몇 단계 앞에 이 문자랑 같은 게 있는 지 확인하고 길이 만큼을 빼줘야 해서 미리 정의해 둔다.
            }
            else
            {
                result[i] = i - strDic[s[i]]; // 거리 만큼을 빼서 배열 result에 대입한다.
                strDic[s[i]] = i; // 마찬가지로 길이를 기록하기 위해서 이렇게 한다.
            }

 

          // 딕셔너리에 있으면 i에서 딕셔너리에 있는 문자와 그 옆에 있는 i(인덱스)를 뺀다.
            // 그리고 딕셔너리에 i(인덱스)와 문자를 삽입
        }
        return result;
    }
}

 

 

 

///////////

 

 

 

using System;

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

        for(int i = 0; i < s.Length; ++i)
        {
            int shortestPosition = -1;

            for(int j = i - 1; j >= 0; --j)
            {
                if(s[j] == s[i])
                {
                    shortestPosition = i - j;
                    break;
                }
            }
            answer[i] = shortestPosition;
        }

        return answer;
    }
}

 

 

 

////// 이해는 가는데 이렇게 또 하라고 하면 못할 거 같다.

728x90

설정

트랙백

댓글