1. x 사이의 개수

문자열 myString이 주어집니다. myString을 문자 “x”를 기준으로 나눴을 때 나눠진 문자열 각각의 길이를 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.

제한사항

  • 1 ≤ myString의 길이 ≤ 100,000
    • myString은 알파벳 소문자로 이루어진 문자열입니다.

코드 작성

def solution(myString):
    return [len(s) for s in myString.split('x')]


2. 문자열 잘라서 정렬하기

문자열 myString이 주어집니다. “x”를 기준으로 해당 문자열을 잘라내 배열을 만든 후 사전순으로 정렬한 배열을 return 하는 solution 함수를 완성해 주세요.
단, 빈 문자열은 반환할 배열에 넣지 않습니다.

제한사항

  • 1 ≤ myString ≤ 100,000
    • myString은 알파벳 소문자로 이루어진 문자열입니다.

코드 작성

def solution(myString):
    l = filter(None, myString.split('x'))
    return sorted(l)


3. 간단한 식 계산하기

문자열 binomial이 매개변수로 주어집니다. binomial은 “a op b” 형태의 이항식이고 a와 b는 음이 아닌 정수, op는 ‘+’, ‘-‘, ‘*’ 중 하나입니다. 주어진 식을 계산한 정수를 return 하는 solution 함수를 작성해 주세요.

제한사항

  • 0 ≤ a, b ≤ 40,000
  • 0을 제외하고 a, b는 0으로 시작하지 않습니다.

코드 작성

def solution(binomial):
    cal = binomial.split()
    if cal[1] == '+':
        return int(cal[0]) + int(cal[-1])
    elif cal[1] == '-':
        return int(cal[0]) - int(cal[-1])
    return int(cal[0]) * int(cal[-1])

코드 작성(간단한 ver)

def solution(binomial):
    return eval(binomial)

eval 함수를 사용하면 매개변수로 받은 식(expression)을 문자열로 받아서 실행할 수 있다. 예로 ‘2 + 1’이라는 문자열이 들어와도 하나의 식으로 판단하여 계산해 준다. eval(‘4 + 2 + 1 + 5 * 4’)은 27을 반환하는 것을 보면, 사칙연산을 할 때 계산 순서를 잘 고려한다는 것을 알 수 있다.


4. 문자열 바꿔서 찾기

문자 “A”와 “B”로 이루어진 문자열 myString과 pat가 주어집니다. myString의 “A”를 “B”로, “B”를 “A”로 바꾼 문자열의 연속하는 부분 문자열 중 pat이 있으면 1을 아니면 0을 return 하는 solution 함수를 완성하세요.

제한사항

  • 1 ≤ myString의 길이 ≤ 100
  • 1 ≤ pat의 길이 ≤ 10
    • myString과 pat는 문자 “A”와 “B”로만 이루어진 문자열입니다.

코드 작성

def solution(myString, pat):
    newString = ''
    for s in myString:
        if s == 'A': 
            newString += 'B'
        else: 
            newString += 'A'
    return 1 if pat in newString else 0

코드 작성(간단한 ver)

def solution(myString, pat):
    pat = ''.join(['A' if p == 'B' else 'B' for p in pat])
    return 1 if pat in myString else 0

pat의 ‘A’, ‘B’을 서로 바꾸고 그 순서가 바뀐 문자열이 myString에 있으면 1, 없으면 0을 출력하도록 작성하였다.


5. rny_string

‘m’과 “rn”이 모양이 비슷하게 생긴 점을 활용해 문자열에 장난을 하려고 합니다. 문자열 rny_string이 주어질 때, rny_string의 모든 ‘m’을 “rn”으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.

제한사항

  • 1 ≤ rny_string의 길이 ≤ 100
  • rny_string은 영소문자로만 이루어져 있습니다.

코드 작성

def solution(rny_string):
    answer = ''
    for s in rny_string:
        if s == 'm': answer += 'rn'
        else: answer += s
    return answer

코드 작성(간단한 ver)

def solution(rny_string):
    return ''.join(['rn' if s == 'm' else s for s in rny_string])


📍 문제 출처


👩🏻‍💻개인 공부 기록용 블로그입니다
오류나 틀린 부분이 있을 경우 댓글 혹은 메일로 따끔하게 지적해주시면 감사하겠습니다.

댓글남기기