Day18 문자열

  • x 사이의 개수
  • 문자열 잘라서 정렬하기
  • 간단한 식 계산하기
  • 문자열 바꿔서 찾기
  • rny_string

x 사이의 개수

문제 설명

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

 

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

문자열 잘라서 정렬하기

문제 설명

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

 

def solution(myString):
    answer = myString.split('x')
    new = []
    for i in answer:
        if i != "":
            new.append(i)

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

if문으로 원소를 바로 true/false 처리해서 true인 원소들만 정렬하기


간단한 식 계산하기

문제 설명

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

 

def solution(binomial):
    return eval(binomial)

다른 언어 풀이 보면 정석대로 풀긴 했는데 이런거 보면 파이썬 너무 양아치인거 같기도 하고 ...


문자열 바꿔서 찾기

문제 설명

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

def solution(s, pat):
    for idx, value in enumerate(s):
        if value == 'A':
            s = s[:idx] + 'B' + s[idx+1:]
        else:
            s = s[:idx] + 'A' + s[idx+1:]
    
    return int(pat in s)

replace를 쓰다가 자꾸 전체가 바뀌어버려서 문자열 연결로 풀었음

def solution(myString, pat):
    return int(pat in myString.replace('A', 'C').replace('B', 'A').replace('C', 'B'))

다른 사람 풀이1: replace로 A를 일단 C로 대체해서 바꾼 것 

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

다른 사람 풀이2: myString이 아니라 pat을 이용한 사람도 있다 신박하다

 


rny_string

문제 설명
'm'과 "rn"이 모양이 비슷하게 생긴 점을 활용해 문자열에 장난을 하려고 합니다. 문자열 rny_string이 주어질 때, rny_string의 모든 'm'을 "rn"으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.
def solution(rny_string):
    return rny_string.replace('m', 'rn')

아 난이도를 좀 올려야하나..? 너무 쉬운 곳에 안주하며 머무나 .. 음 일단 기초문제까지는 끝내보자잣

+ Recent posts