[코테/JAVA] 연습문제 : 가장 가까운 같은 글자

    728x90
    반응형

    2022.12.10

    코테 문제풀이 21주차 03번 문제

     

     

    문제

      ① 연습문제 : 가장 가까운 같은 글자

     

       링크

     

    프로그래머스

    코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

    programmers.co.kr

     

    접근방법

      생각해낸 방법은 1가지

      ① HashMap.containsKey() 메소드를 사용한 중복체크

     

     

    풀이

      ① 접근방법 :

      ② 풀이

    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
    31
    32
    33
    34
    35
    36
    import java.util.*;
     
    class Solution {
        /*
         * Date: 2022-12-09
         * Time: 10:13
         */
        public int[] solution(String s) {
            return proximateEqualsWord(s);
        }
     
        /*
         * 메소드명: 가장 가까운 같은 글자
         * 1. HashMap.contains() 메소드를 사용해 글자가 중복되는지 체크
         * 2. 중복되지 않으면 word=index 형태로 put
         * 3. 중복되면 index - map에 저장된 index
         * 4. 고정배열에 차례대로 값 저장 후 리턴
         */
        public int[] proximateEqualsWord(String s) {
            int[] output = new int[s.length()];
     
            Map<String, Integer> map = new HashMap<>();
            for (int i = 0; i < s.length(); i++) {
                int index = -1;
                String word = s.substring(i, i+1);
                if (map.containsKey(word)) {
                    index = i - map.get(word);
                    map.put(word, i);
                } else {
                    map.put(word, i);
                }
                output[i] = index;
            }
            return output;
        }
    }
    cs

     

     

    결과

     

     

    주의사항

      ① 없음

    728x90
    반응형

    댓글