[Programmers] 문자열 밀기 (문자열 Lv.0) - Python

꼬마요리사레미·2023년 5월 30일

Algorithm

목록 보기
29/41

1. 문제


문자열 밀기

2. 풀이


코드
def solution(A, B):
    count = 0
    for _ in range (len(A)):
        if A == B:
            return count
        # 왼쪽일 경우 A[1:] + A[0]
        A = A[-1] + A[:len(A)-1]
        count += 1
    return -1
입력 및 출력
A = "hello"	
B = "ohell"	

>> 1

3. 로직


  1. 변수 count0으로 초기화한다. 이 변수는 밀기 횟수를 저장하는 역할을 한다.

  2. 문자열 A의 길이만큼 반복문을 실행한다.

  3. AB가 동일한 경우, 즉 문자열을 밀어서 B와 동일하게 만든 경우에는 count를 반환한다.

  4. A를 한 칸씩 왼쪽으로 밀기 위해 A의 맨 뒤 문자를 가져와서 A의 맨 앞에 붙인다. 이를 A = _A[-1] + A[:len(A)-1] 코드로 구현한다.

  5. 밀기가 이루어질 때마다 count1씩 증가시킨다.

  6. 반복문이 모두 실행된 후에도 AB가 동일하지 않은 경우, 즉 문자열을 밀어서 B와 동일하게 만들 수 없는 경우에는 -1을 반환한다.

0개의 댓글