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

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

by 머킹 2023. 10. 30.
728x90

[파이썬] 프로그래머스 Lv0.  문자열 바꿔서 찾기, rny_string, 세 개의 구분자

 

안녕하세요 머킹입니다.

토치 + 파이썬 + 깃 관리하기 + openCV  + 팀 프로젝트 + 개인 프로젝트

이렇게 하고 싶은 욕심이 있는데 너무 무리한 것 같아서 고민이 됩니다.

프로젝트 + 코테 + openCV & torch 형식으로 가야 할까요.

 

이것도 사실 힘들기는 하지만...

정말 시간이 부족하다는 것을 또 느끼네요.

어떻게 하면 좋을지 더 생각해 봐야겠습니다.

 


문자열 바꿔서 찾기

 

문제 설명

자 "A"와 "B"로 이루어진 문자열 myString과 pat가 주어집니다.

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

 

def solution(myString, pat):
    temp_string = myString.replace('A','X')
    temp_string = temp_string.replace('B','A')
    temp_string = temp_string.replace('X','B')
    
    if pat in temp_string:
        return 1
    else:
        return 0

이렇게 풀었는데 너무 어렵게 풀었어요

뭔가 약간 알락 말락 하는데 코드로는 어떻게 하면 좋을까... 고민이 되더라고요

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

이런 식으로 pat을 건드는 방법이 있는데

되게 좋은 생각 같네요!

 


rny_string

 

문제 설명

'm'과 "rn"이 모양이 비슷하게 생긴 점을 활용해 문자열에 장난을 하려고 합니다.

문자열 rny_string이 주어질 때, rny_string의 모든 'm'을 "rn"으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.

 

def solution(rny_string):
    answer = rny_string.replace('m','rn')
    return answer

프로그래머스 문제를 풀 때마다 생각하는 건데

이런 문제는 어떻게 생각할까요?

 

난의도가 점점 높아지면서 

스토리텔링도 생기고... 궁금하네요

 


세 개의 구분자

 

문제 설명

임의의 문자열이 주어졌을 때 문자 "a", "b", "c"를 구분자로 사용해 문자열을 나누고자 합니다.

예를 들어 주어진 문자열이 "baconlettucetomato"라면 나눠진 문자열 목록은 ["onlettu", "etom", "to"]가 됩니다.

문자열 myStr이 주어졌을 때 위 예시와 같이 "a", "b", "c"를 사용해 나눠진 문자열을 순서대로

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

단, 두 구분자 사이에 다른 문자가 없을 경우에는 아무것도 저장하지 않으며, return 할 배열이 빈 배열이라면 ["EMPTY"]를 return 합니다.

 

def solution(myStr):
    parts = myStr.split('a')
    result = []

    for part in parts:
        subparts = part.split('b')
        for subpart in subparts:
            subsubparts = subpart.split('c')
            for subsubpart in subsubparts:
                if subsubpart:
                    result.append(subsubpart)

    return result if result else ["EMPTY"]
def solution(myStr):
    answer = [x for x in myStr.replace('a', ' ').replace('b', ' ').replace('c', ' ').split() if x]
    return answer if answer else ['EMPTY']

이런 방법이!~!!!!