본문 바로가기
  • 머킹이의 머신로그
오늘부터 코딩테스트

[오늘부터 코딩테스트]프로그래머스 코딩 기초 프로그램 풀기

by 머킹 2023. 9. 26.
728x90

프로그래머스 Lv.0단계 문제풀이 [Python]

안녕하세요 머킹입니다!

요즘 프로젝트가 우선순위가 돼서 자꾸 늦지만 

그래도 하나씩은 꼭 풀겠습니다.


문자열의 앞의 n글자 

문제 설명

문자열 my_string과 정수 n이 매개변수로 주어질 때, 

my_string의 앞의 n글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요.

 

내 코드

def solution(my_string, n):
    answer = ''
    my_string(len[:n])
    return answer

 

풀이

def solution(my_string, n):
    if n <= 0:
        return ""
    elif n>= len(my_string):
        return my_string
    else:
        return my_string[:n]

이렇게 길게 길게 풀었는데 생각해보니 더 짧게 할 수 있을 것 같습니다.

[:n] 이렇게 하면 되지 않을까 했는데

다른 사람들의 풀이가 있었습니다!

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

 


접두사인지 확인하기

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

 

내 풀이

def solution(my_string, is_prefix):
    answer = my_string.startswith('is_prefix')
    return answer

이걸로 될 것 같았는데 왜인지 안되는...

좀 더 생각을 해봤습니다.

def solution(my_string, is_prefix):
    if len(is_prefix) > len(my_string):
        return 0
    
    if my_string.startswith(is_prefix):
        return 1
    
    return 0

 

def solution(my_string, is_prefix):
    return int(my_string.startswith(is_prefix))

이런 풀이도 있었는데 되게 간결해보고 좋은 것 같습니다.

int 를 앞에 붙여야 풀리는 문제였습니다..

역시 제가 배울 것은 정말 많군요.