<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
를 실행합니다.