알고리즘

[프로그래머스] 가장 가까운 같은 글자(Java) *

muerha 2024. 12. 4. 10:48

 

 

 


 

 

나의 풀이

class Solution {
    public int[] solution(String s) {
        int[] answer = new int[s.length()];
        char[] charArr = s.toCharArray();

        for(int i = 0; i < charArr.length ; i++){
            answer[i] = -1;
            for(int j = i - 1; j >= 0; j--){
                  if(charArr[i] == charArr[j]){
                      answer[i] = i - j;
                      break;
                  }
            }
        }
        return answer;
    }
}

 

 

 

 

다른 사람의 풀이

import java.util.HashMap;
import java.util.Map;

class Solution {
    public int[] solution(String s) {
        int[] answer = new int[s.length()];
        Map<Character, Integer> map = new HashMap<>();
        for (int i = 0; i < s.length(); i++) {
            if (!map.containsKey(s.charAt(i))) {
                answer[i] = -1;
                map.put(s.charAt(i), i);
                continue;
            }

            answer[i] = i - map.get(s.charAt(i));
            map.put(s.charAt(i), i);
        }

        return answer;
    }
}

 

 

 

@,@,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,