반응형
250x250
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

Yeonee's Story

[프로그래머스/Java] 코딩테스트 Lv.0 특정 문자 제거하기 본문

。*:・゚☆・゚schedule・゚*:・゚★・:*:・☆ *:・゚★/나의 코딩테스트

[프로그래머스/Java] 코딩테스트 Lv.0 특정 문자 제거하기

yeonee 여니 2023. 10. 7. 23:20
728x90
반응형
SMALL

안녕하세요.
https://blog.naver.com/sysysy0302 여니입니다 :)

 

 

🪅 나의 문제 풀이

[테스트 통과]

class Solution {
    public String solution(String my_string, String letter) {
        String answer = "";
        
		// replace 메서드 이용
        answer = my_string.replace(letter, "");

        return answer;
    }
}

 

🧸 코드설명

[해결 방안]

특정 문자 제거 혹은 변경해주는 replace메소드를 이용하였습니다.

 

✨ 다른 풀이

풀이1)

다른 분 풀이가 조금 복잡해보여도 코드 분석으로 충분히 배울점이 있어서 코드를 분석해보았습니다.
이 메서드는 매개변수를 2개 받습니다. 하나는 문자열인 's'이고 다른 하나는 제거할 문자인 'letter'입니다.
우리는 's'문자열에서 'letter'문자를 제거한 결과를 리턴하고자 합니다.

먼저 StringBuilder 클래스를 사용하여 문자열을 동적으로 구성할 수 있는 StringBuilder 객체 sb를 생성합니다.초
char[] arr = s.toCharArray(); 입력 문자열 s를 문자 배열로 변환하여 각 문자를 개별로 처리하기 위한 arr 배열을 만들어줍니다. arr배열의 개별적 문자 ch(하나의 문자로 취급)에 대해서 for반복문을 돌려줍니다. if문에서 개별적 문자인 ch가 제거할 문자 ' letter '의 첫번째 문자와 같지 않을 경우에만 sb에 ch문자를 추가해줍니다. 이렇게 하면 'letter'문자가 아닌 문자들만 남게 됩니다. 모든 반복이 완료되면 sb에 저장된 문자열을 문자열로 변환하여 결과값을 리턴합니다.

 

풀이2)

꼭 answer을 선언해서 결과값을 리턴하지 않아도 된다는 것을...잊고 있었다!!

 

풀이3)

솔직히 이 문구가 좀 더 다이렉트로 값을 만들 수 있어서 더욱 좋은거 같습니다.

 

풀이4)

먼저 문자열 answer을 ""(빈 문자열)로 초기화해줍니다. 'letter'문자열에서 첫 번째 문자를 뽑아서 c라는 변수에 저장합니다. for문으로 문자열 'my_string'의 길이만큼 반복문을 돌립니다. 반복문을 돌려 현재 인덱스 i에 해당하는 문자를 temp라는 변수에 저장합니다. if(temp == c) continue; 구문을 통해 temp와 c가 같으면 (현재 문자와 제거할 문자가 같을 경우) 다음 반복문을 진행합니다. 조건을 통과한 값인 temp를 answer문자열에 추가하며, 마지막으로 결과값 answer을 리턴합니다.

 

+ 'replace메소드'에 대해 참고하기 좋은 포스팅

 

728x90
반응형
LIST