프로그래머스 코딩 테스트 연습 문제 - 문자열 밀기 / JAVA 풀이 정리
https://school.programmers.co.kr/learn/courses/30/lessons/120921
방법 1
public int solution(String A, String B) {
return (B + B).indexOf(A);
}
문자열 B를 2번 반복해 이어 붙인 다음 문자열 A가 나타나는 위치(인덱스를) 찾는다.
끝까지 밀어도 A를 찾을 수 없다면 -1, 같다면 0을 반환하므로 다른 조건도 완벽히 만족
방법 2
public int solution(String A, String B) {
int answer = -1;
String temp = A;
for(int i = 0 ; i < A.length() ; i++){
if(temp.equals(B)){
answer = i;
break;
}
// (현재 문자열에서 마지막 글자) + (처음부터 마지막에서 두번째 글자)
temp = temp.charAt(A.length()-1) + temp.substring(0, A.length()-1);
}
return answer;
}
}
- 밀어야하는 횟수를 -1로 초기화하고 시작 (조건 : 밀어도 만들 수 없으면 return -1)
- 문자열 A를 temp에 담는다.
- 임시 문자열 temp를 규칙에 맞게 새로 생성하면서 B와 비교한다.
- B와 같아질 때의 index값을 찾으면 answer에 저장하고 반복문 종료
JavaScript 코드 보기
더보기
function solution(A, B) {
return (B + B).indexOf(A);
}
'Today I Learned > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 도둑질 - JAVA (0) | 2023.09.24 |
---|---|
[프로그래머스] 금과 은 운반하기 - JAVA (0) | 2023.09.22 |
[프로그래머스] 연속된 수의 합 - JAVA (0) | 2023.09.21 |
[프로그래머스] 하샤드 수 - JAVA (0) | 2023.09.21 |
[프로그래머스] 기능 개발 문제 - JAVA (0) | 2023.09.20 |