728x90
반응형
SMALL

문제 설명

문자 "A"와 "B"로 이루어진 문자열 myString과 pat가 주어집니다. myString의 "A"를 "B"로, "B"를 "A"로 바꾼 문자열의 연속하는 부분 문자열 중 pat이 있으면 1을 아니면 0을 return 하는 solution 함수를 완성하세요.


제한사항

  • 1 ≤ myString ≤ 100
  • 1 ≤ pat ≤ 10
    • myString과 pat는 문자 "A"와 "B"로만 이루어진 문자열입니다.

입출력 예

myString pat result

"ABBAA" "AABB" 1
"ABAB" "ABAB" 0

입출력 예 설명

입출력 예 #1

  • "ABBAA"에서 "A"와 "B"를 서로 바꾸면 "BAABB"입니다. 여기에는 부분문자열 "AABB"가 있기 때문에 1을 return 합니다.

입출력 예 #2

  • "ABAB"에서 "A"와 "B"를 서로 바꾸면 "BABA"입니다. 여기에는 부분문자열 "BABA"가 없기 때문에 0을 return 합니다.
package Lv0;

public class H181864 {
	public int solution(String myString, String pat) {
		int answer = 0;
		StringBuilder sb = new StringBuilder();

		// myString의 문자를 순회하며 "A"를 "B"로, "B"를 "A"로 바꾼 문자열을 생성합니다.
		for (char ch : myString.toCharArray()) {
			if (ch == 'A') {
				sb.append('B');
			} else if (ch == 'B'){
				sb.append('A');
			}
		}
		String swappedString = sb.toString();
		
		// 생성된 문자열의 모든 가능한 부분 문자열에 대해 반복문을 수행하며,
		// 각 부분 문자열이 pat와 같은지 확인합니다.
		for (int i = 0; i <= swappedString.length() - pat.length(); i++) {
			String substring = swappedString.substring(i, i + pat.length());

			if (substring.equals(pat)) {
				answer = 1;
				break;
			}
		}
		return answer;
	}
}

문자열 myString의 각 문자를 순회하며 "A"를 "B"로, "B"를 "A"로 바꾼 새로운 문자열을 생성

그런 다음 생성된 문자열에서 pat과 같은 부분 문자열이 있는지 확인하고, 찾으면 answer 값을 1로 변경

만약 찾지 못하면 기본값인 0을 반환

728x90
반응형
LIST
728x90
반응형
SMALL

문제 설명

알파벳으로 이루어진 문자열 myString과 pat이 주어집니다. myString의 연속된 부분 문자열 중 pat이 존재하면 1을 그렇지 않으면 0을 return 하는 solution 함수를 완성해 주세요.

단, 알파벳 대문자와 소문자는 구분하지 않습니다.


제한사항

  • 1 ≤ myString의 길이 ≤ 100,000
  • 1 ≤ pat의 길이 ≤ 30
  • myString과 pat은 모두 알파벳으로 이루어진 문자열입니다.

입출력 예

myString pat return

"AbCdEfG" "aBc" 1
"aaAA" "aaaaa" 0

입출력 예 설명

입출력 예 #1

  • "AbCdEfG"의 0~2번 인덱스의 문자열은 "AbC"이며, 이는 pat인 "aBc"와 같습니다. 따라서 1을 return 합니다.

입출력 예 #2

  • myString의 길이가 pat보다 더 짧기 때문에 myString의 부분 문자열 중 pat와 같은 문자열이 있을 수 없습니다. 따라서 0을 return 합니다.
package Lv0;
/*
알파벳으로 이루어진 문자열 myString과 pat이 주어집니다.
myString의 연속된 부분 문자열 중 pat이 존재하면 1을 그렇지 않으면 0을 return 하는 solution 함수를 완성해 주세요.

단, 알파벳 대문자와 소문자는 구분하지 않습니다.
 */
public class H181878 {
	public int solution(String myString, String pat) {
		int answer = 0;
		String lowerMyString = myString.toLowerCase();
		String lowerPat = pat.toLowerCase();

		for (int i = 0; i <= lowerMyString.length() - lowerPat.length(); i++) {
			String substring = lowerMyString.substring(i, i + lowerPat.length());

			if (substring.equals(lowerPat)) {
				answer = 1;
				break;
			}
		}
		return answer;
	}
}

myString과 pat을 모두 소문자로 변환

myString의 모든 가능한 부분 문자열에 대해 반복문을 수행하며, 각 부분 문자열이 pat와 같은지 확인

만약 같은 부분 문자열이 발견되면 answer를 1로 설정하고 반복문을 종료

pat이 myString의 연속된 부분 문자열에 존재할 때 1을 반환하고, 그렇지 않을 때 0을 반환

728x90
반응형
LIST

'알고리즘 > 프로그래머스 JAVA LV.0' 카테고리의 다른 글

접미사인지 확인하기  (0) 2023.05.03
문자열 바꿔서 찾기  (0) 2023.05.03
접두사인지 확인하기  (0) 2023.05.03
배열에서 문자열 대소문자 변환하기  (0) 2023.05.02
이어 붙인 수  (0) 2023.05.02
728x90
반응형
SMALL

문제 설명

어떤 문자열에 대해서 접두사는 특정 인덱스까지의 문자열을 의미합니다. 예를 들어, "banana"의 모든 접두사는 "b", "ba", "ban", "bana", "banan", "banana"입니다.

문자열 my_string과 is_prefix가 주어질 때, is_prefix가 my_string의 접두사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요.


제한사항

  • 1 ≤ my_string의 길이 ≤ 100
  • 1 ≤ is_prefix의 길이 ≤ 100
  • my_string과 is_prefix는 영소문자로만 이루어져 있습니다.

입출력 예

my_string is_prefix result

"banana" "ban" 1
"banana" "nan" 0
"banana" "abcd" 0
"banana" "bananan" 0

입출력 예 설명

입출력 예 #1

  • 예제 1번에서 is_prefix가 my_string의 접두사이기 때문에 1을 return 합니다.

입출력 예 #2

  • 예제 2번에서 is_prefix가 my_string의 접두사가 아니기 때문에 0을 return 합니다.

입출력 예 #3

  • 예제 3번에서 is_prefix가 my_string의 접두사가 아니기 때문에 0을 return 합니다.

입출력 예 #4

  • 예제 4번에서 is_prefix가 my_string의 접두사가 아니기 때문에 0을 return 합니다.
class Solution {
    public int solution(String my_string, String is_prefix) {
        int answer = 0;
        
        if (my_string.startsWith(is_prefix)) {
            answer = 1;
        }
        return answer;
    }
}

my_string이 is_prefix로 시작하는지 확인하여 만약 시작한다면 answer를 1로 설정

그렇지 않으면 기본값인 0을 유지

이렇게 구현된 solution 함수는 문제에서 요구하는대로 my_string이 is_prefix로 시작할 때 1을 반환하고, 그렇지 않을 때 0을 반환

728x90
반응형
LIST

'알고리즘 > 프로그래머스 JAVA LV.0' 카테고리의 다른 글

문자열 바꿔서 찾기  (0) 2023.05.03
원하는 문자열 찾기  (0) 2023.05.03
배열에서 문자열 대소문자 변환하기  (0) 2023.05.02
이어 붙인 수  (0) 2023.05.02
마지막 두 원소  (0) 2023.05.02

+ Recent posts