[코딩 기초 트레이닝] Day10 문자열
문자열의 앞의 n글자
문제 설명
문자열 my_string
과 정수 n
이 매개변수로 주어질 때, my_string
의 앞의 n
글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요.
제한사항
my_string
은 숫자와 알파벳으로 이루어져 있습니다.- 1 ≤
my_string
의 길이 ≤ 1,000 - 1 ≤
n
≤my_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_string
과 is_prefix
가 주어질 때, is_prefix
가 my_string
의 접두사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요.
제한사항
- 1 ≤
my_string
의 길이 ≤ 100 - 1 ≤
is_prefix
의 길이 ≤ 100 my_string
과is_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 ≤
s
≤e
<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 ≤
m
≤my_string
의 길이 ≤ 1,000 m
은my_string
길이의 약수로만 주어집니다.- 1 ≤
c
≤m
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,000code
는 영소문자로만 이루어져 있습니다.
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” |
댓글남기기