본문 바로가기
코딩테스트/프로그래머스 입문

[코딩테스트 Lv.0] 중복된 문자 제거

by 블루데이제이 2024. 3. 13.
728x90
반응형
문제 설명

문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.

 

제한 사항
1 ≤ my_string ≤ 110
my_string은 대문자, 소문자, 공백으로 구성되어 있습니다.
대문자와 소문자를 구분합니다.
공백(" ")도 하나의 문자로 구분합니다.
중복된 문자 중 가장 앞에 있는 문자를 남깁니다.
입출력 예
my_string		result
"people"		"peol"
"We are the world"	"We arthwold"
입출력 예 설명
입출력 예 #1
"people"에서 중복된 문자 "p"와 "e"을 제거한 "peol"을 return합니다.

입출력 예 #2
"We are the world"에서 중복된 문자 "e", " ", "r" 들을 제거한 "We arthwold"을 return합니다.

내 풀이
Java
class Solution {
    public String solution(String my_string) {
        String answer = "";
        
        for(int i = 0; i < my_string.length(); i++){
            String str = String.valueOf(my_string.charAt(i));
            if(!answer.contains(str)){
                answer += str;
            }
        }
        
        return answer;
    }
}
C
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* my_string) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    char* answer = (char*)malloc(sizeof(char)*strlen(my_string));
    answer[0] = my_string[0];
    
    int cnt = 0;
    for(int i = 1; i < strlen(my_string); i++){
        //printf("%c, %d\n", my_string[i], strchr(answer, my_string[i]));
        if(strchr(answer, my_string[i]) == 0){            
            answer[++cnt] = my_string[i];    
        }
    }
     
    answer[++cnt] = NULL;
   
    return answer;
}
Python
def solution(my_string):
    answer = ''
    for s in my_string:
        if s not in answer:
            answer += s
    return answer

https://school.programmers.co.kr/learn/courses/30/lessons/120888

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

728x90
반응형