https://school.programmers.co.kr/learn/courses/30/lessons/120921
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 A와 B가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 밀어야 하는 최소 횟수를 return하고 밀어서 B가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
제출 답안
def solution(A, B):
cnt = 0
for i in range(len(A)):
if A==B:
return cnt
else:
B = B[1:]+B[0]
cnt += 1
return -1
개선 답안
solution=lambda a,b:(b*2).find(a)
- find는 찾는 값이 존재하지않으면 -1 반환
- b를 두 배로 늘린 후 a가 되는 인덱스를 찾아서 반환
참고 자료
https://school.programmers.co.kr/learn/courses/30/lessons/120921/solution_groups?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'알고리즘 > Python' 카테고리의 다른 글
[Python | SWEA] 1926. 간단한 369게임 (0) | 2023.04.25 |
---|---|
[Python | 프로그래머스] 다항식 더하기 (0) | 2023.04.25 |
[Python | 프로그래머스] 특이한 정렬 (0) | 2023.04.25 |
[Python | 프로그래머스] 저주의 숫자 3 (0) | 2023.04.25 |
[Python | SWEA] 2025. N줄덧셈 (0) | 2023.04.24 |