문제설명
주어진 문자열에서 주어진 문자를 모두제거한 문자열을 반환 하는것이다
제한사항
입출력 예
말로하는 순서도
solution함수선언 및 매개변수 char형 문자열 my_string선언 char형 문자 letter선언 반환형 char
int형 문자열 배열의길이를 담을 변수 len선언 strlen함수 이용 my_string문자열길이 입력
char형 정답 및 최종반환 변수 answer선언 malloc를 활용하여 문자열의길이에서 1을 뺀만큼 할당
int 정답배열 위치값으로 활용할 변수 x선언 초기값 0
for문 문자열의 길이보다 for문 변수가 작을때 변수 증가
if문 my_string의 for문 변수의 위치의 값이 letter의 0번 위치의 값과 같지 않을때
answer의 x변수를 증가한 그 위치의 my_string의 for문변수의 위치의 값을 넣는다
for문이 끝나면 answer의 x위치의 NULL을 넣는다
최종 반환
소스코드
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* my_string, const char* letter) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
int len=strlen(my_string);
char* answer = (char*)malloc(len-1);
int x=0;
for(int i=0;i<len;i++)
{
if(my_string[i] != letter[0])
{
answer[x++]=my_string[i];
}
}
answer[x]=NULL;
return answer;
}
풀이
개인적으로 처음 strlen을 사용한 예제였다
sizeof와의 차이점을 알게된 문제다
위치값도 for문으로 같이 증가하면 빈칸이 생기기에 따로 증가 시켰다
문자열의 맨 끝은 NULL이 들어가야한다 그래야 문자열의 끝임을 나타낸다 본래에는 '\0'으로 하는것이 정석이지만
NULL도 되기에 보기 편하기 위에 이방식으로 했다
출처: 프로그래머스 코딩테스트연습 입문문제, https://school.programmers.co.kr/learn/courses/30/lessons/120826
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr