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

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

by 머킹 2023. 10. 27.
728x90

[파이썬] 프로그래머스 Lv0.  x 사이의 개수, 문자열 잘라서 정렬하기, 간단한 식 계산하기

 

안녕하세요 머킹입니다.

제가 프로그래머스로 코딩테스트를 푼 지 그래도 조금 시간이 지났는데

이제 드디어 LV0의 끝이 보이는 것 같아서 너무너무 기쁩니다...

 


x 사이의 개수

 

문제 설명

문자열 myString이 주어집니다. myString을 문자 "x"를 기준으로 나눴을 때

나눠진 문자열 각각의 길이를 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.

 

def solution(myString):
    answer = []
    for substring in myString.split('x'):
        answer.append(len(substring))
    return answer

이번에는 가볍게 풀었습니다!

 


문자열 잘라서 정렬하기

 

문제 설명

문자열 myString이 주어집니다.

"x"를 기준으로 해당 문자열을 잘라내 배열을 만든 후 사전순으로

정렬한 배열을 return 하는 solution 함수를 완성해 주세요.

단, 빈 문자열은 반환할 배열에 넣지 않습니다.

 

def solution(myString):
    answer = []
    for substring in myString.split('x'):
        if substring:
            answer.append(substring)
    answer.sort()
    return answer

 

위랑 살~짝 다르죠

if 문이 한 번 더 쓰인 것 외에는 바뀐 게 없습니다 ㅎㅎ

 

def solution(myString):
    return sorted(ch for ch in myString.split('x') if ch)

다른 사람의 풀이를 보니까 sorted 함수도 사용할 수 있겠네요!

리스트 컴프리헨션을 다들 어떻게 이렇게 잘 쓰시는지... 신기합니다.

 


간단한 식 계산하기

 

문제 설명

문자열 binomial이 매개변수로 주어집니다. 

binomial은 "a op b" 형태의 이항식이고 a와 b는 음이 아닌 정수, op는 '+', '-', '*' 중 하나입니다.

주어진 식을 계산한 정수를 return 하는 solution 함수를 작성해 주세요.

 

def solution(binomial):
    elements = binomial.split()
    
    a = int(elements[0])
    op = elements[1]
    b = int(elements[2])
    
    if op == '+':
        result = a + b
    elif op == '-':
        result = a - b
    elif op == '*':
        result = a * b
    return result

헤헤 제 코드 진짜 기네요 ㅎ

solution=eval

다른 사람 답 보는데 이게 되네요 ㅋㅋㅋㅋㅋㅋㅋ

def solution(binomial):
    a, op, b = binomial.split()

    a = int(a)
    b = int(b)

    if op == "+":
        result = a + b
    elif op == "-":
        result = a - b
    elif op == "*":
        result = a * b

    return result

split을 이렇게 사용하는 게 좋을 것 같습니다.