코딩테스트 문제

[프로그래머스/Python] 문자열 밀기

왕초보코딩러 2024. 1. 5. 17:15
728x90

문제

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

 

프로그래머스

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

programmers.co.kr

A 문자열을 몇 번 밀면 B가 나오는지 리턴(없으면 -1)


1. 반복문 사용

A[-1]  맨 마지막 문자

A[:-1] 처음부터 맨 마지막 전까지의 문자열

def solution(A, B):
    answer = -1
    #같다면
    if A == B:
        answer = 0
    #다르다면
    else:
        #len -1 만큼 돌고 B와 같은지 확인
        cnt = 0
        for _ in range(len(A)-1):
            A = A[-1] + A[:-1]
            cnt += 1
            if A == B:
                answer = cnt
                break
                
    return answer

 

 

2. B를 두 번 반복, find() 사용

A가 llohe라면

B가 hello라면

B 두 번 반복 -> hellohello

 

그 안에 A 문자열이 없다면 -1을 리턴하고 있다면 인덱스를 리턴

def solution(A, B):
    B = B * 2
    answer = B.find(A)

    return answer