결과부터 보여주자면!
def solution(A, B):
b=2*B
return b.find(A)
코드로 해결.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
해결을 위한 첫번째 시도.
a,b는 이미 주어짐.
a[n-i:n]+a[0:(n-i)] 식을
n개의 배열을 가지고 있다면, for문으로 i번 반복해서 확인
case 1) a가 hive라고 한다면
1번 밀었을 때 = a[3]+a[0:2]
2번 밀었을 때 = a[2]+a[3]+a[0:1] aka a[2:3]+a[0:1]
3번 밀었을 때 = a[1]+a[2]+a[3]+a[0]
4번 밀었을 때 (배열의 길이만큼 반복했을 때]= 원상복구 ...
=> .... 포기
두번째 시도.
a,b는 이미 주어짐.
b를 두번 반복해서 나열했을때, a의 존재 여부를 확인
-> 없으면 -1 출력
-> 있으면 b에서 a를 발견한 첫번째 지점을 출력
=> 찾는 문자가 존재한다면 해당 위치의 index를 반환해주고, 존재하지 않는다면 -1을 반환하는 find 함수를 사용
[코드]----------------------------------------------------------------------------------------------------------------------------------------------
def solution(A, B):
b=2*B
return b.find(A)
---------------------------------------------------------------------------------------------------------------------------------------------------
case1) a:ndfi b:find
-> indf ->find (2번 밀기)
2*B = ndfindfi (시작 인덱스: 2)
case2) a:ningmor b: morning
->rningmo ->orningm -> morning (3번 밀기)
2*B = morningmorning(시작 인덱스:3)
case3) a:find b:nddf
nddfnddf (a를 찾을 수 없음)
=> -1출력
조건을 만족!
이 문제는 파이썬의 find 함수에 딱 적합한 문제였다고 한다...~~
프로그래머스에서 처음으로 10점 이상 받아본 문제!!
'코테 준비 > Programmers' 카테고리의 다른 글
| 프로그래머스 Lv.2 - 카펫 (0) | 2023.03.22 |
|---|---|
| 프로그래머스 lv.1 - 하샤드 수 (0) | 2023.03.01 |
| 프로그래머스 - 나머지가 1이 되는 수 찾기 (0) | 2023.02.28 |
| [프로그래머스 lv1] 정수 내림차순으로 배치하기 (0) | 2023.02.27 |
| 프로그래머스 - 정수 제곱근 판별 (0) | 2023.02.27 |