본문 바로가기

Til

Til 24.03.21 프로그래머스 파이썬(endswith()함수 , split()함수)

>> 79 글자 이어 붙여 문자열 만들기

 

문자열 my_string과 정수 배열 index_list 

my_string의 index_list의 원소들에 해당하는

인덱스의 글자들을 순서대로 이어 붙인 문자열을 return 

 

예시 "zpiaz" [1, 2, 0, 0, 3] "pizza"

 

#글자이어붙여 문자열 만들기
 
def solution (my_string, index_list):
    answer = ' '
    for i in index_string :
        answer += my_string[i]
    return answer
 

 

>>80 접미사인지 확인

 

어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미

"banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"
문자열 my_string과 is_suffix가 주어질 때, 

is_suffix가 my_string의 접미사라면 1을, 아니면 0을 return

 

#접미사인지 확인
 
def solution(my_string, is_suffix):
    if my_string[-len(is_suffix):] == is_suffix:  #마이 스트링 끝에서부터  이즈 서픽 길이만큼가져옴
        return 1
    else :
        return 0
 

 

endswith() 함수를 사용해보자

 

 
def solution (my_string, is_suffix):
    return int (my_string.endswith(is_suffix))
 

 

 - endswith() 함수 : 주어진 문자열이 지정된 접미사로 끝나면 True 아니면 False

- int ()로 감싸서 True 는 1 // False는 0

<<형식>>
string.endswith(suffix[, start[-시작지점 , 생략가능, end-문자길이, 생략가능]])
 
예시 >>
string = "Hello, world!"
print(string.endswith("!"))  # True
print(string.endswith("world"))  # False
print(string.endswith("world!"))  # True
 

 

 

>>81 공백으로 구분하기 1

 

단어가 공백 한 개로 구분되어 있는 문자열 my_string

my_string에 나온 단어를

앞에서부터 순서대로 담은 문자열 배열을 return

 

예시

"i love you" ["i", "love", "you"]

 

#공백으로 구분하기1

def solution (my_string):
    answer = []
    answer = my_string.split(' ')
    return answer
 

 

split() 함수 : 괄호 안에 있는것을 기준으로 분리하여 리스트로 반환해줌

 - 괄호를 비울시 : 공백을 기준으로 나눠짐

 

==> 그래서 리스트 초기화등의 코드를 저렇게 길게 쓸 필요가 없음

 

 
def solution (my_string):
    return my_string.split() # 바로 리턴함 // 스플릿뒤의 괄호 비움
 

 

 

>>82 암호해독


암호화된 문자열 cipher를 주고받음
그 문자열에서 code의 배수 번째 글자만 진짜 암호
문자열 cipher와 정수 code가 매개변수로 주어질 때 해독된 암호 문자열을 return

 

-> 코드의 배수만 리턴하면 될거같음??

 

#암호해독

def solution (cipher, code):
    answer = ""  # 문자열을 받아야 함으로 새로 생
    for i in range(code-1,len(cipher),code): # 레인지인덱스는 0부터 시작이니까 코드 1줌
        answer += cipher[i]
    return answer
 

 

**append함수로 추가가 안되는이유?

파이썬에서 문자열 " "는 변경이 불가능 함

따라서 새로운 문자열을 생성해주고 이어붙여야함