728x90
https://school.programmers.co.kr/learn/courses/30/lessons/120822
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
def solution(my_string):
answer = my_string[::-1]
#answer = ''
#for i in range(len(my_string)) :
# answer += my_string[-i - 1]
return answer
방법 1) for문 사용
def solution(my_string):
answer = ''
for c in my_string :
answer = c + answer
return answer
방법 2) 리스트 reverse 사용
def solution(my_string):
my_string_list = list(my_string) #문자열->리스트
my_string_list.reverse() #리스트를 역순으로
answer = ''.join(my_string_list) #리스트->문자열
return answer
방법 3) [::-1] 문자열 슬라이싱
def solution(my_string):
answer = my_string[::-1]
return answer
name[::1]은 기존 name과 동일하게 문자열이 생성된 것을 볼 수 있습니다.
name[::2]는 name 문자열에서 한 칸씩 띄워져서 문자열이 생성된 것을 볼 수 있습니다.
앞부분만 살펴보자면 BlockDM 여기에서 B, o, k, M 순으로
인덱스 순으로 보면 0, 2, 4, 6 이렇게 문자가 잘려서 작업이 되는 것을 볼 수 있습니다.
name[::-1]은 name 문자열에서 역순으로 하나씩 잘라서 문자열을 생성합니다.
인덱스를 기준으로 보면 name[-1] 자르고 name[-2] 자르고 name[-3] 자르고 ..
이런 식으로 문자열을 뒤에서부터 하나씩 잘라서 새롭게 문자열을 만들게 됩니다.
name[::-2]는 name 문자열에서 역순으로 하나씩 자르되 한 칸씩 띄워서 자르게 됩니다.
(인덱스 기준으로 2씩 차이 나게)
인덱스 기준으로 보면 name[-1] 자르고 name[-3] 자르고 name[-5] 자르고
이런식으로 자르게 됩니다.
참고) https://blockdmask.tistory.com/581
728x90
'𝘼𝙣𝙖𝙡𝙮𝙨𝙞𝙨 > ᴀʟɢᴏʀɪᴛʜᴍ' 카테고리의 다른 글
[Programmers] 숨어있는 숫자의 덧셈(1) (0) | 2023.03.31 |
---|---|
[Programmers] 배열의 유사도 : intersection (0) | 2023.03.31 |
[Programmers] 특정 문자 제거하기 (0) | 2023.03.31 |
[Programmers] 최대값 만들기, 두번째로 큰 수 찾기 (0) | 2023.03.29 |
[Programmers] 분수의 덧셈 (0) | 2023.03.29 |