https://school.programmers.co.kr/learn/courses/30/lessons/120896#
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
function solution(s)
{
var arr = [];
arr = s.split('');
// s를 나눠 배열로 만들어준다.
var newarr = [];
newarr = s.split('');
// s를 나눠 또다른 배열에 만들어준다.
// 배열 두 개에 저장하는 이유는 한 배열에 덮어씌우면 오류떠서 그럼
for(i=0; i<s.length; i++)
{ // arr[0][0] 부터 arr[s.length][s.length] 까지 모든 원소에 대해
for(j=0; j<s.length; j++)
{
if(arr[i]==arr[j])
{ // arr에 같은 값을 가진 원소가 있다면
newarr[i] += '0';
// newarr의 원소 뒤에 0를 추가해준다.
}
}
if(arr[i]==arr[j])
{ // arr에 같은 값을 가진 원소가 있다면
newarr[j] += '0';
// newarr의 원소 뒤에 0를 추가해준다.
}
}
// 만약 한 번만 등장하는 문자라면 0는 1개만 붙어있을 것.
// newarr은 이런 값이 나온다. ["a000","b00","c000","a000","b00","c000","a000","d0","c000"]
var answer = [];
for (i=0; i<s.length; i++)
{
if (newarr[i].length==2)
{ // newarr의 원소가 2글자면 한 번만 등장한 문자라는 것이기 때문에
// 2글자인 원소를 answer라는 배열에 집어넣는다.
answer.push(newarr[i]);
}
}
// ["a0","b0","d0","c0"]
var text='';
text = answer.join('');
// a0b0d0c0
text = text.replace(/0/g,'');
// abdc
var answer = [];
answer = text.split('');
// ["a","b","d","c"]
answer.sort();
// ["a","b","c","d"]
answer = answer.join('');
// "abcd"
var result = answer;
if(answer.length==0){result='';}
return result;
}
230603 python
def solution(s):
answer = []
arr = list(s)
# 문자열 s를 하나하나 나눠 arr이라는 배열에 저장해 준다
for i in range (0, len(arr)):
if arr.count(arr[i]) == 1:
# 한번만 등장한 문자라면
answer.append(arr[i])
# answer라는 배열에 그 문자를 추가해 준다.
return ''.join(sorted(answer))
# answer를 사전순으로 정렬하고, 합쳐서 문자열로 바꿔준다
230916 C++
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string solution(string s) {
string answer = "";
sort(s.begin(),s.end());
for(int i=0; i<s.size();i++){
if ( (s[i-1]!=s[i]) && (s[i+1]!=s[i]) ) {
answer += s[i];
}
}
return answer;
}
'코딩테스트 > LV. 0' 카테고리의 다른 글
LV0 :: 2의 영역 (0) | 2023.10.12 |
---|---|
LV0 :: 진료 순서 정하기 (0) | 2023.10.12 |
LV. 0 :: 소인수분해 (0) | 2023.01.26 |
LV. 0 :: 중복된 문자 제거 (0) | 2023.01.26 |
LV. 0 :: 이진수 더하기 (0) | 2023.01.26 |
댓글