https://campus.programmers.co.kr/courses/15436/lessons/132843
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.*;
class Solution {
public String solution(String input_string) {
String answer = "";
//외톨이 판별 맵
Map<Character,Boolean> map = new HashMap<>();
//중복 판별
Set<Character> set = new TreeSet<>();
char[] carr= input_string.toCharArray();
char current=' ';
for(char temp:carr){ //하나씩 꺼내서
if(current!=temp){ //이전의 알파벳과 꺼낸 알파펫이 같지 않으면
if(map.containsKey(temp)){ //해당 map의 key 값으로 꺼낸 알파벳 값이 있다면
set.add(temp); //외톨이 알파벳이라는 뜻이므로 set에 넣어줌
}
map.put(temp,true); //key값으로 없는 경우 새로운 key value값을 만들어줌
current=temp; //꺼낸 알파벳을 current값으로 넣어주고 다음 index 알파벳과 비교
}
}
for(char temp :set){ //set을 꺼내서
answer+=temp; //answer에 넣음
}
if(answer==""){ //외톨이 알파벳이 없는 경우
return "N"; //n 출력
}
return answer;
}
}
같은 알파벳이 연속해서 나오면 안되므로 이전의 알파벳과 비교를 하면서 이전의 알파벳과 같지 않은경우와 같지 않다면 해당 알파벳을 key값으로 만들어 map에 저장한다 그리고 key값에 알파벳이 들어있는 상태에서 또 알파벳이 들어오는 경우를 체크하고 (containsKey 메소드) 중복되지않게 set에 넣고 마지막에 set에 들어있는 값을 answer에 넣고 출력한다
'JAVA' 카테고리의 다른 글
[PCCP 모의고사 #2] 실습용 로봇 (0) | 2023.01.15 |
---|---|
[PCCP 모의고사 #1] 운영체제 (0) | 2023.01.12 |
[프로그래머스] 전력망 둘로 나누기_Java (2) | 2022.12.20 |
프로그래머스 송아지 찾기 (0) | 2022.12.07 |
오라클 커서(CURSOR) 예시 (0) | 2022.12.06 |