Data house

[python] 문자열 여러번 뒤집기 - slicing 본문

Computer Knowledge/코테 대비 오답노트

[python] 문자열 여러번 뒤집기 - slicing

l._.been 2023. 5. 15. 18:21
728x90
문제

https://school.programmers.co.kr/learn/courses/30/lessons/181913

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

나의 풀이과정
def solution(my_string, queries):
    result = list(my_string)
    
    for s,e in queries:
        if s==0:
            result[s:e+1] = result[e:s:-1]+result[0:s+1]
        else:
            result[s:e+1] = result[e:s-1:-1]
    return ''.join(result)

나는 너무 어렵게 생각했나보다.. ㅋㅋㅋㅋ 경우의 수를 다 나누고 슬라이싱 세밀하게 했는데 

의외로 다른 분들의 코드를 보니 파이썬은 정말 쉬운 언어임을 다시 깨닫게 되었다.

 

인상적인 풀이 1
def solution(my_string, queries):
    answer=list(my_string)
    for s,e in queries:
        answer[s:e+1]=answer[s:e+1][::-1]
    return ''.join(answer)

문자열 전체 answer[s:e+1] = answer[s:e+1][::-1] 해주면 된다니..ㄷㄷ... 많이 알아간다 오늘도 ^^

 

인상적인 풀이 2
def solution(my_string, queries):
    for (s, e) in queries:
        my_string = my_string[:s] + my_string[s:e+1][::-1] + my_string[e+1:]
    return my_string

이 분은 약간 세밀하게 슬라이싱했나보다ㅎㅎ