코드 그라데이션

[Lv.0] 문자열 바꿔서 찾기 본문

Java/알고리즘

[Lv.0] 문자열 바꿔서 찾기

완벽한 장면 2023. 6. 10. 23:13

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

 

프로그래머스

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

programmers.co.kr

+5점 문제

문제 설명

문자 "A"와 "B"로 이루어진 문자열 myString과 pat가 주어집니다. 

myString의 "A"를 "B"로, "B"를 "A"로 바꾼 문자열의 연속하는 부분 문자열 중 

pat이 있으면 1을 아니면 0을 return 하는 solution 함수를 완성하세요.

 

제한사항

 

입출력 예

입출력 예 설명

 

아이디어

  •  my_string / pat  A 또는 B 
  • 바꾼 문자열에서 연속하는 부분 중, pat 있으면 1, 없으면 0
  • 치환을 쓰기엔 무리가 있는 게 뭐냐면, A를 B로 바꾸고 나면, B를 다시 A로 바꾸는 작업도 해야하는데, 한 번 하면 다 바꿔버리니까... 난잡...
  • 유클리드 호제법의 방법을 쓸 수도 있지만, 더 복잡.
  • replace()의 단점은 문자열 전체를 바꾼다는 것(범위 지정 불가)
  • 문자열을 추가할 때는 더하기 연산.(+=)

정리하면

  • 1. 두 문자를 바꾸고
  • 2. 포함 여부를 검사해서 리턴
  • A 이면서 B인 것은 없으니까, 한 번의 반복문으로 다 처리 가능.

 

 

 

나의 코드

class Solution {
    public int solution(String myString, String pat) {
        String answer = "";
        for(int i=0; i<myString.length(); i++) {
            if(myString.charAt(i) == 'A') {
                answer += "B";
            }
            else {
                answer += "A";
            }
        }
        if(answer.contains(pat)) {
            return 1;
        }
        else {
            return 0;
        }
        
    }
}

 

 

 

728x90
Comments