Java Algorithm 한 번 사용한 최초문자

song yuheon·2023년 11월 17일
0

Java Algorithm

목록 보기
15/18
post-thumbnail

문제


주어진 문자열 s에서 단 한 번만 사용된 문자 중에서 가장 먼저 나타난 문자의 인덱스 번호를 반환하는 프로그램을 작성합니다. 인덱스는 1부터 시작하며, 한 번만 사용된 문자가 없는 경우 -1을 반환합니다.

제한사항:

  • 문자열 s의 길이는 100을 넘지 않습니다.
  • 문자열은 소문자로만 이루어져 있습니다.

이 문제는 문자열을 탐색하면서 각 문자가 몇 번 나타나는지 계산하고, 한 번만 나타난 문자 중 가장 먼저 나타난 문자의 위치를 찾아야 합니다. 이를 위해 문자의 빈도수를 계산하는 해시 테이블을 사용하고, 문자열을 처음부터 탐색하여 가장 처음 나타난 한 번만 사용된 문자의 인덱스를 찾는 로직을 구현하면 됩니다.


나의 풀이


package inflearn_231117;

import java.util.*;

class Solution {
	public int solution(String s){
		int answer = -1;
		Map<Character,Integer> result = new HashMap<>();
		
		for(int i =0;i<s.length();i++) {
			char temp =s.charAt(i); 
			if(result.containsKey(temp))
				result.put(temp, result.get(temp)+1);
			else
				result.put(temp, 1);
		}
		
		for(int i=0;i<s.length();i++) {
			if(result.get(s.charAt(i))==1) {
				answer=i+1;
				break;
			}	
		}

		return answer;
	}

	public static void main(String[] args){
		Solution T = new Solution();
		System.out.println(T.solution("statitsics"));
		System.out.println(T.solution("aabb"));
		System.out.println(T.solution("stringshowtime"));
		System.out.println(T.solution("abcdeabcdfg"));
	}
}

결과



profile
backend_Devloper

0개의 댓글