https://school.programmers.co.kr/learn/courses/15008/lessons/121683
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
저는 구현을 통해 해당 문제를 해결하였습니다.
구현을 통해 현재 알파벳이 나왔는지 안나왔는지를 확인하였고, 이 알파벳이 바로 이전의 알파벳과 같은지 다른지를 확인하였습니다.
만약 이전에 나온적이 있고, 이전 알파벳과 다르다면 List에 넣었습니다.
그리고 List의 중복을 제거하기 위해 List에서 사용한 것들을 Set으로 체크하여 List에 없는 것만 넣었습니다.
import java.util.*;
class Solution {
private static final String NOT_FOUND = "N";
public String solution(String input_string) {
String answer = "";
int size = input_string.length();
Set<Character> set = new HashSet<>();
Set<Character> used = new HashSet<>();
List<Character> result = new LinkedList<>();
for(int i = 0 ; i < size ; i++){
char ch = input_string.charAt(i);
if(set.contains(ch) && i > 0 && input_string.charAt(i-1) != ch && !used.contains(ch)){
result.add(ch);
used.add(ch);
}
set.add(ch);
}
Collections.sort(result);
StringBuilder sb = new StringBuilder();
for(char ch : result){
sb.append(ch);
}
answer = sb.toString();
if(sb.length() == 0){
answer = NOT_FOUND;
}
return answer;
}
}
'알고리즘' 카테고리의 다른 글
프로그래머스 PCCP 모의고사 4번 (JAVA) (0) | 2022.09.25 |
---|---|
프로그래머스 PCCP 모의고사 2번 (JAVA) (1) | 2022.09.24 |
백준 8394번 악수 (JAVA) (0) | 2022.09.22 |
프로그래머스 N-Queen (JAVA) (0) | 2022.09.21 |
프로그래머스 제일 작은 수 제거하기 (JAVA) (0) | 2022.09.20 |