https://school.programmers.co.kr/learn/courses/30/lessons/120896
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.
나의 풀이
import java.util.*;
class Solution {
public String solution(String s) {
String answer = "";
HashMap<Character,Integer> map = new HashMap<>();
List<String> strList = new ArrayList<>();
for(char c : s.toCharArray()){
map.put(c,map.getOrDefault(c,0)+1);
}
for(char key : map.keySet()){
if(map.get(key) == 1){
strList.add(String.valueOf(key));
}
}
Collections.sort(strList);
for(String str : strList){
answer += str;
}
return answer;
}
}
활용한 주요 메소드 정리
| 메소드명 | 설명 |
| getOrDefault() | 문자열의 개수를 세는 문제에서 빠지지 않는 hashMap의 중요 메소드이다. 문자열을 키값으로 넣고 없을 경우는 0을 입력할 수 있다. 그렇게 하면 처음 들어오는 값도 초기화 할 수 있고 다음 들어오는 값은 이전 입력한 데이터를 가져오는 것도 가능하다 map.put(key,getOrDefault(key,0)+1); |
| toCharArray() | 문자열을 char형 배열로 변환하는 메소드이다. 문자열을 하나하나 for문으로 탐색해야 할 경우 사용된다. for( char c : s.toCharArray()){ } |
| Collections.sort(); | List를 오름차순으로 정리할 때 사용되는 컬렉션이다. Collection.sort(list, Collections.reverseOrder()); //내림차순의 방법이다. |
'알고리즘' 카테고리의 다른 글
| [알고리즘]프로그래머스-추억점수(2차원 배열과 해시테이블의 합작)_java (2) | 2023.05.29 |
|---|---|
| [알고리즘]프로그래머스 - 최빈값 구하기(HashMap을 곁들인) (0) | 2023.05.29 |
| [알고리즘]int형 배열의 내림차순과 오름차순(feat.Integer형 배열으로 변환) (2) | 2023.05.29 |
| [알고리즘] 동일한 숫자 개수 세기(+동일한 문자의 개수) (0) | 2023.05.29 |
| [알고리즘]입력받은 숫자를 거꾸로 출력하기(java) (0) | 2023.05.27 |