반응형
https://school.programmers.co.kr/learn/courses/30/lessons/120921
전수조사 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
1. 정답변수 answer 선언 후 -1로 초기화합니다.
2. 옮긴 횟수 cnt선언 후 0으로 초기화합니다.
3. A_copy를 선언 후 A를 복사합니다.
📔 풀이과정
1. A_copy의 길이만큼 오른쪽으로 한 칸씩 밀면서 A_copy가 B와 같은지 비교합니다. 만약 같다면 answer를 cnt로 갱신하고 break합니다.
2. A_copy가 원복되었으므로 왼쪽으로 한 칸씩 밀면서 같은지를 비교해줍니다. 만약 같다면 기존 answer와 cnt의 최솟값을 answer에 저장합니다.
📔 정답 출력 | 반환
answer를 반환합니다.
📕 Code
📔 Python3
def solution(A, B):
answer = -1
cnt = 0
A_copy = A
# 오른쪽으로 밀기
for i in range(0, len(A_copy)+1):
if A_copy == B:
answer = cnt
break
A_copy = A_copy[-1] + A_copy[0:len(A_copy)-1]
cnt += 1
cnt = 0
# 왼쪽으로 밀기
for i in range(0, len(A_copy)+1):
if A_copy == B:
if cnt != 0:
answer = min(answer, cnt)
break;
A_copy = A_copy[1:] + A_copy[0]
return answer
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Brute Force' 카테고리의 다른 글
(Python3) - 프로그래머스(연습문제): 바탕화면 정리 (0) | 2024.11.10 |
---|---|
(Python3) - 프로그래머스(PCCE 기출문제): 10번 / 공원 (0) | 2024.11.08 |
(Python3) - 프로그래머스(코딩테스트 입문) : 연속된 수의 합 (1) | 2024.11.03 |
(Python3) - 프로그래머스(코딩테스트 입문) : k의 개수 (0) | 2024.10.31 |
(Python3) - 프로그래머스(코딩테스트 입문) : 7의 개수 (0) | 2024.10.31 |