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

mul·2023년 2월 2일
1

알고리즘

목록 보기
8/65
post-custom-banner

🔒 문제

프로그래머스 Lv.1 가장 가까운 같은 글자

🔑 해결

문자열 s가 주어질 때, 같은 글자가 가장 가까이에 몇 칸 앞에 있는지를 계산해 배열로 return하는 solution을 작성하는 문제이다.

for문을 돌려 i번째 글자 앞의 문자들 중에 같은 문자가 있는지 i번과 가까운 순대로 탐색한다.

  1. for문을 돌려 i번째 글자 지정
  2. i~0까지 i번째 글자와 같은 글자 찾아서 answer[i]에 저장
  3. answer[i]가 0이 아니라면 이미 찾은 것이므로 넘어가기.
  4. i~0까지의 for문을 끝낸 뒤, answer[i]가 0이라면 자신 앞에 같은 글자가 없는 것이므로 -1 저장

🔓 코드

public int[] solution(String s) {
        int[] answer = new int[s.length()];
        
        for (int i = 0; i < s.length(); i++) {
			for (int j = i; j >= 0; j--) {
				if (s.charAt(i) == s.charAt(j) && answer[i] == 0) {
					answer[i] = i - j;
					
				}
			}
			if (answer[i] == 0) {
				answer[i] = -1;
			}
		}
        
        return answer;
    }
post-custom-banner

0개의 댓글