콘텐츠로 건너뛰기

Lv0 C# 프로그래머스 #17 - 부분 문자열, 원하는 문자열 찾기, 글자 이어 붙여 문자열 만들기

50. 부분 문자열

 

문제 설명

  • 어떤 문자열 A가 다른 문자열 B안에 속하면 A를 B의 부분 문자열이라고 합니다. 예를 들어 문자열 "abc"는 문자열 "aabcc"의 부분 문자열입니다. 문자열 str1과 str2가 주어질 때, str1이 str2의 부분 문자열이라면 1을 부분 문자열이 아니라면 0을 return하도록 solution 함수를 완성해주세요.

제한사항

  • 1 ≤ str1 ≤ str2 ≤ 20 
  • str1과 str2는 영어 소문자로만 이루어져 있습니다.

입출력 예시

  • 본문과 동일합니다.
  • "tbbttb"에는 "tbt"가 없으므로 0을 return합니다.

풀이

using System;

public class Solution {
    public int solution(string str1, string str2) {
        return str2.Contains(str1) ? 1 : 0;
    }
}

// Cotains 메서드를 이용하여 str2 문자열에 str1 문자열이 포함되어 있는지 확인

 

51. 원하는 문자열 찾기

 

문제 설명 

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

제한사항 

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

입출력 예시 

  • "AbCdEfG"의 0~2번 인덱스의 문자열은 "AbC"이며, 이는 pat인 "aBc"와 같습니다. 따라서 1을 return 합니다.
  • myString의 길이가 pat보다 더 짧기 때문에 myString의 부분 문자열 중 pat와 같은 문자열이 있을 수 없습니다. 따라서 0을 return 합니다.

풀이

using System;

public class Solution {
    public int solution(string myString, string pat) {
        return myString.ToUpper().Contains(pat.ToUpper()) ? 1 : 0;
    }
}

// 대 소문자를 가리지 않기 때문에 모두 대문자로 만든 후 포함되었는지 확인

 

52. 글자 이어 붙여 문자열 만들기

 

문제 설명 

  • 문자열 my_string과 정수 배열 index_list가 매개변수로 주어집니다. my_string의 index_list의 원소들에 해당하는 인덱스의 글자들을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.

제한사항 

  • 1 ≤ my_string의 길이 ≤ 1,000 
  • my_string의 원소는 영소문자로 이루어져 있습니다. 
  • 1 ≤ index_list의 길이 ≤ 1,000 
  • 0 ≤ index_list의 원소 < my_string의 길이

입출력 예시 

  • 예제 1번의 my_string에서 인덱스 3, 5, 6, 11, 12, 14, 16, 17에 해당하는 글자는 각각 g, o, r, m, r, a, p, e이므로 my_string에서 index_list에 들어있는 원소에 해당하는 인덱스의 글자들은 각각 순서대로 p, r, o, g, r, a, m, m, e, r, s입니다. 따라서 "programmers"를 return 합니다.
  • 예제 2번의 my_string에서 인덱스 0, 1, 2, 3에 해당하는 글자는 각각 z, p, i, a이므로 my_string에서 index_list에 들어있는 원소에 해당하는 인덱스의 글자들은 각각 순서대로 p, i, z, z, a입니다. 따라서 "pizza"를 return 합니다.

풀이

using System;
using System.Collections.Generic;

public class Solution {
    public string solution(string my_string, int[] index_list) {
        List<char> result = new List<char>();
        foreach(int index in index_list){
            result.Add(my_string[index]);
        }
        string str_result = string.Join("",result);
        return str_result;
    }
}

// my_string의 요소를 저장할 리스트 result 선언 => 문자를 저장할 것이기 때문에 타입은 char
// foreach문을 사용하여 각 인덱스의 요소를 result 리스트에 저장
// 문자를 이어붙인 문자열 result를 str_result에 저장 후 반혼

 

  • 정답률 높은 순부터 풀이
  • 매일 3 문항 풀이
비교 (0/20)
모두 지우기