자바 백준 15904번
실버 5
https://www.acmicpc.net/problem/15904
문제 보기
분류: 문자열, 그리디 알고리즘
문제 풀기
입력된 문자열에 대해 indexOf()를 사용하여 char 타입으로 대문자 `U`, `C`, `P`, `C`의 index를 찾는다.
각 indexOf()는 존재하는 문자를 찾으면 그 문자의 `index`를 반환하고 그렇지 않으면 `-1`을 반환한다.
첫 번째 문자의 탐색이 끝나면 그 index값을 다음 두 번째 문자 탐색의 시작 index로 넘겨주는 식으로 하여 탐색 시작 위치를 지정한다. 이 방법은 다음 문자들에도 적용한다.
`-1`이 출력되지 않았으면 네 문자는 모두 순차적으로 UCPC를 만들 수 있으므로 `true`를 리턴하고, `-1`이 하나라도 나오면 없는 문자이기에 `false`를 리턴한다.
코드 보기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
if (canFormUCPC(input)) {
System.out.print("I love UCPC");
} else {
System.out.print("I hate UCPC");
}
}
private static boolean canFormUCPC(String input) {
int index1stU = input.indexOf('U');
int index2ndC = input.indexOf('C', index1stU + 1);
int index3rdP = input.indexOf('P', index2ndC + 1);
int index4thC = input.indexOf('C', index3rdP + 1);
if (index1stU != -1 && index2ndC != -1 && index3rdP != -1 && index4thC != -1) {
return true;
} else {
return false;
}
}
}
참고 하기
https://www.w3schools.com/java/ref_string_indexof.asp
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 2609 - 최대공약수와 최소공배수 (0) | 2023.07.23 |
---|---|
[Java] 백준 풀기 1485 - 정사각형 (0) | 2023.07.22 |
[Java] 백준 풀기 11652 - 카드 (0) | 2023.07.20 |
[Java] 백준 풀기 11557 - Yangjojang of The Year (0) | 2023.07.19 |
[Java] 백준 풀기 11726 - 2xN 타일링 (0) | 2023.07.18 |