문자열에서 한번만 사용한 문자를 찾으려고 합니다.
매개변수 s에 문자열이 주어지면 한번만 사용한 문자 중 문자열에서 가장 먼저 나타난 문자의 인덱스 번호를 반환하는 프로그램을 작성하세요. 인덱스는 1부터 시작합니다. 한번만 사용한 문자가 없을 경우 -1를 반환하세요.
1. HashMap 생성 : HashMap<s, i>
2. hm.getOrDefault(i, 0) : 'i'라는 Key에 해당하는 value가 존재하면 가져오고, 존재하지 않으면 0을 default로 지정하여 사용
3. hm.get(s.charAt(i)) s.charAt(i)의 value가 1인 값 +1
import java.util.*;
public class Solution {
public int solution(String s){
int answer = 0;
//s 세어서 hm에 넣기
HashMap<Character, Integer> hm = new HashMap<>();
for(char x : s.toCharArray()){
hm.put(x,hm.getOrDefault(x,0)+1);
}
//hm에서 제일 첫번째꺼 뽑기
for(int i=0;i<s.length();i++){
if(hm.get(s.charAt(i))==1) return i+1;
}
return -1;
}
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"));
}
}
'Algorithm' 카테고리의 다른 글
greedy (0) | 2024.11.18 |
---|---|
sort (0) | 2024.11.18 |
자료구조 활용 : HashSet (0) | 2024.11.18 |