코드 그라데이션

[Lv.0] 특정 문자 제거하기 본문

Java/알고리즘

[Lv.0] 특정 문자 제거하기

완벽한 장면 2023. 5. 18. 19:40

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

 

프로그래머스

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

programmers.co.kr

문제 설명

문자열 my_string 과 문자 letter 이 매개변수로 주어집니다.

my_string에서 letter 를 제거한 문자열을 리턴하도록 함수를 완성해주세요.

 

제한사항

입출력 예

입출력 예 설명

아이디어

  • letter은 임의의 값. 어떤 게 주어질 지는 모르지만  문자 하나라는 건 정해짐.
  • 원하는 문자열을 새로 만든다.
  • 새로운 문자열은 주어진 문자열에서 특정 문자열만 없게 만들면 된다는 것.
  • 새로운 문자열을 만들 때 가장 쉬운 방법은 가져와서 확인하며 비교하고, 조건을 충족하면 빼고(넣고)...
  • 추가하지 않으면 뺀 것과 동일한 효과를 나타낸다.
  • 빈 문자열에 요소를 하나씩 더해가는 느낌으로 새로운 문자열을 디자인 해 간다고 생각하자.
  • letter.charAt(0) => 레터는 언제나 한 글자라고 주어졌으니까.
  • if문인데 아무것도 안해야 한다는 소리는, 일단 if문을 비워두고 else를 써도 되고, 또는 if에서 같지 않은 걸 검사한다.
  • 여기서는 my_string의 i 번째와 letter의 0번째를 비교하면 된다.
  • String에서 첫번째 문자열을 찾는 방법은 .charAt(0) 

 

작성한 코드 1

class Solution {
    public String solution(String my_string, String letter) {
         String answer = "";
         
         for(int i=0; i<my_string.length(); i++) {
             if(my_string.charAt(i) != letter.charAt(0)) {
                 answer += my_string.charAt(i);                
             }
         }
         return answer;
    }
}

 

작성한 코드 2

class Solution {
    public String solution(String my_string, String letter) {
    	return my_string.replace(letter,"");
    }
}

.replace(letter,"") 는 어떤 문자열의 내용을 ~~로 변경한다는 뜻

즉, 여기는 my_string에 등장한 letter라는 문자열을 ""(빈 문자열)로 바꾼다는 뜻.

728x90
Comments