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
728x90
반응형
'코딩테스트 > 프로그래머스 입문' 카테고리의 다른 글
[코딩테스트 Lv.0] 가까운 수 (0) | 2024.03.13 |
---|---|
[코딩테스트 Lv.0] 삼각형의 완성조건 (1) (0) | 2024.03.13 |
[코딩테스트 Lv.0] k의 개수 (0) | 2024.03.12 |
[코딩테스트 Lv.0] A로 B 만들기 (0) | 2024.03.12 |
[코딩테스트 Lv.0] 이진수 더하기 (0) | 2024.03.12 |