<aside>
💬 lv0, 문자열 처리, 이동
주어진 문자열과 정수 N에 대해, 문자열을 오른쪽으로 N번 순환 이동시키는 코드를 작성해주세요. 문자열의 각 문자는 오른쪽으로 이동하며, 문자열의 끝에 도달하면 다시 문자열의 시작으로 이동합니다. 예를 들어, 문자열 "abcd"를 1번 오른쪽으로 이동시키면 "dabc"가 됩니다. 문자열과 이동 횟수 N이 주어졌을 때, 이동 후의 문자열을 반환하세요.
| 입력 (문자열, N) | 출력 (이동 후 문자열) |
|---|---|
| ("abcd", 1) | "dabc" |
| ("hello", 3) | "llohe" |
| ("data", 2) | "tada" |
문자열을 오른쪽으로 주어진 횟수만큼 순환 이동시킨 후의 결과를 반환합니다. 예를 들어, "hello"를 3번 오른쪽으로 이동시키면, "llohe"가 됩니다.
</aside>
def solution(data):
string, count = data **#1 data 언패킹**
return string[-count:] + string[:-count] **#2 문자열 처리후 반환**
data 언패킹
튜플 data를 입력으로 받아, 이를 string과 count로 언패킹합니다.
string은 처리할 문자열이고, count는 오른쪽에서 왼쪽으로 이동할 문자의 수입니다.
문자열 처리 후 반환
string[-count:] 문자열의 끝에서 count만큼의 문자를 슬라이싱하여 가져옵니다. 예를 들어, string이 "hello"이고 count가 3일 경우, "llo"를 가져옵니다.
string[:-count] 문자열의 시작부터 끝에서 count만큼 앞에 있는 위치까지 의 문자를 슬라이싱하여 가져옵니다. 동일한 예시에서는 "he"를 가져옵니다. 이 두 부분을 합쳐서 "llohe"를 반환합니다.
슬라이싱
기본 형태: string[-count:]
문자열의 끝에서 count 개의 문자를 선택합니다.
즉, string의 길이에서 count를 뺀 위치부터 문자열의 끝까지 가져옵니다. string[:-count] 문자열의 시작부터 끝에서 count 개의 문자를 제외한 나머지 부분을 선택합니다. 즉, 문자열의 시작부터 string의 길이에서 count를 뺀 위치 직전 까지를 가져옵니다.
개념: 음수를 사용한 슬라이싱은 문자열 또는 리스트의 끝에서부터 요소를 선택하는 방법입니다. 인덱스를 음수로 지정하면, 끝에서부터 역순으로 요소에 접근할 수 있습니다. 예를 들어, -1은 마지막 요소, -2는 끝에서 두 번째 요소를 나타냅니다.
def solution(data):
word, n = data **#1 data 언패킹**
return word[-n:] + word[:len(word)-n] if n != 0 else word **#2 문자열 처리 후 반환**
data 언패킹
함수는 튜플 data를 입력으로 받아, 이를 word와 n으로 언패킹합니다. 여기서 word는 처리할 문자열이고, n은 문자열을 오른쪽으로 이동 시킬 길이입니다.
문자열 처리
word[-n:] 문자열 word의 끝에서부터 n개의 문자를 가져옵니다. 예를 들어, word가 "abcd"이고 n이 1이면, "d"를 가져옵니다.word[:len(word)-n] 문자열 word의 시작부터 word의 길이에서 n을 뺀 위치까지 문자를 가져옵니다. 같은 예시에서는 "abc"를 가져옵니다.if n != 0 n이 0이 아닐 경우에만 로직을 수행합니다. n이 0이라면 문자열 word를 그대로 반환하여 원본 문자열을 유지합니다.word[-n:]과 word[:len(word)-n]을 연결하여 반환합니다. 위의 예시에서는 "d"와 "abc"를 연결하여 "dabc"를 반환합니다.슬라이싱과 삼항연산자
# 삼항연산자
<참일 때의 값> if <조건> else <거짓일 때의 값>
# 슬라이싱
word[-n:] + word[:len(word)-n] if n != 0 else word
n 이 0이 아니라면 word[-n:] + word[:len(word)-n] 을 실행하고, n 이 0 이라면word 를 실행합니다.