2 분 소요

문자열의 앞의 n글자


문제 설명

문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string의 앞의 n글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요.


제한사항

  • my_string은 숫자와 알파벳으로 이루어져 있습니다.
  • 1 ≤ my_string의 길이 ≤ 1,000
  • 1 ≤ nmy_string의 길이

#####


solution

def solution(my_string, n):
    return my_string[:n]

실행 결과

my_string n result
“ProgrammerS123” 11 “ProgrammerS”
“He110W0r1d” 5 “H

접두사인지 확인하기


문제 설명

어떤 문자열에 대해서 접두사는 특정 인덱스까지의 문자열을 의미합니다. 예를 들어, “banana”의 모든 접두사는 “b”, “ba”, “ban”, “bana”, “banan”, “banana”입니다. 문자열 my_stringis_prefix가 주어질 때, is_prefixmy_string의 접두사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요.


제한사항

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

solution

def solution(my_string, is_prefix):
    answer = []
    for i in range(len(my_string)):
       answer.append(my_string[0:i])
    if is_prefix in answer:
        return 1
    else:
        return 0
----------------------------------------
[다른 풀이]
def solution(my_string, is_prefix):
    return int(my_string.startswith(is_prefix))

입출력 예

my_string is_prefix result
“banana” “ban” 1
“banana” “nan” 0
“banana” “abcd” 0
“banana” “bananan” 0

startwith는 특정 값으로 시작하는가를 구별할 수 있습니다.


문자열 뒤집기


문제 설명

문자열 my_string과 정수 s, e가 매개변수로 주어질 때, my_string에서 인덱스 s부터 인덱스 e까지를 뒤집은 문자열을 return 하는 solution 함수를 작성해 주세요.


제한사항

  • my_string은 숫자와 알파벳으로만 이루어져 있습니다.
  • 1 ≤ my_string의 길이 ≤ 1,000
  • 0 ≤ se < my_string의 길이

solution

def solution(my_string, s, e):
    return my_string[:s] + my_string[s:e+1][::-1] + my_string[e+1:]

입출력 예

my_string s e result
“Progra21Sremm3” 6 12 “ProgrammerS123”
“Stanley1yelnatS” 4 10  

세로 읽기


문제 설명

문자열 my_string과 두 정수 m, c가 주어집니다. my_string을 한 줄에 m 글자씩 가로로 적었을 때 왼쪽부터 세로로 c번째 열에 적힌 글자들을 문자열로 return 하는 solution 함수를 작성해 주세요.

제한사항

  • my_string은 영소문자로 이루어져 있습니다.
  • 1 ≤ mmy_string의 길이 ≤ 1,000
  • mmy_string 길이의 약수로만 주어집니다.
  • 1 ≤ cm

solution

def solution(my_string, m, c):
    new_list = []
    new_str = ''
    for i in range(0, len(my_string), m):
        new_list.append(my_string[i:i+m])
    for v in new_list:
        new_str += v[c-1]
    return new_str
-----------------------------------------------
다른 풀이

def solution(my_string, m, c):
    return my_string[c-1::m]

입출력 예

my_string m c result
“ihrhbakrfpndopljhygc” 4 2 “happy”
“programmers” 1 1 “programmers”

이렇게 간단하게도 표현할 수 있다는 것이 놀랍습니다.(#`O′)


qr code


문제 설명

두 정수 q, r과 문자열 code가 주어질 때, code의 각 인덱스를 q로 나누었을 때 나머지가 r인 위치의 문자를 앞에서부터 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.


제한사항

  • 0 ≤ r < q ≤ 20
  • r < code의 길이 ≤ 1,000
  • code는 영소문자로만 이루어져 있습니다.

def solution(q,r, code):
    result = ''
    for i in range(len(code)):
        if i % q == r:
            result += code[i]
   	return result
---------------------------------
다른 풀이
def solution(q,r,code):
    return code[r::q]

다른 풀이 해석

문자열 code의 index를 q로 나누면 q-1까지의 나머지가 q간격으로 반복됩니다. 그래서 r이 곧 시작 index가 되고 그걸 code의 끝까지 q간격으로 반환하는 겁니다.

입출력 예

q r code result
3 1 “qjnwezgrpirldywt” “jerry”
1 0 “programmers” “programmers”

댓글남기기