반응형
문제 : 함수를 이용한 부분 문자열 위치 구하기
<문제 링크>
풀이 방식
import java.util.Scanner;
public class Main {
static Scanner sc = new Scanner(System.in);
static String input = sc.next();
public static int subStr(String sub){
for(int i=0; i<=input.length() - sub.length(); i++){
if(input.substring(i,i+sub.length()).equals(sub)){
return i;
}
}
return -1;
}
public static void main(String[] args) {
String sub = sc.next();
int index = subStr(sub);
System.out.print(index);
}
}
- 전역 변수 선언
함수를 사용할 때 전부 인자로 넣어주는 것이 바람직하지만,
여러 함수에서 쓰일 것 같을 때 전역변수로 사용하면 Main class 내부의 모든 함수에서 자유롭게 사용이 가능하다.
(대신 보안성의 이유가 있으므로 주의하여 사용해야한다.)
subStr이라는 static 메서드에 접근해야한다.
아래에 정의한 input과 sc는 Main class의 인스턴스 변수들이여서 static 메서드에 접근하려면
static으로 전역변수를 정의해줘야 한다. - subStr 메서드
- i <= input.length()-sub.length();
String의 길이에 접근할때는 .length가 아닌 .length()이다.
부분 문자열의 첫번째 인덱스에 접근하는 것이므로 <가 아닌 <=로 접근해야한다. -
input.substring(i,i+sub.length()).equals(sub)
문자열끼리 등호 비교를 할 때에는 .equals() 명령어를 사용해야한다.
- i <= input.length()-sub.length();
반응형
'코딩테스트' 카테고리의 다른 글
[코드트리] 그 계절, 그 날 - 코드트리 조별과제 (0) | 2024.08.10 |
---|