https://www.acmicpc.net/problem/2857
5명의 요원 중 FBI 요원을 찾는 프로그램을 작성하시오.
FBI요원은 요원의 첩보원명에 FBI가 들어있다.
5개 줄에 요원의 첩보원명이 주어진다. 첩보원명은 알파벳 대문자, 숫자 0~9, 대시 (-)로만 이루어져 있으며, 최대 10글자이다.
첫째 줄에 FBI 요원을 출력한다. 이때, 해당하는 요원이 몇 번째 입력인지를 공백으로 구분하여 출력해야 하며, 오름차순으로 출력해야 한다. 만약 FBI 요원이 없다면 "HE GOT AWAY!"를 출력한다.
import java.util.Scanner;
public class pr2857 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int cnt = 0;
String[] arr= new String[5];
for(int i=0;i<arr.length;i++) {
String stc=s.next();
arr[i]=stc;
}
for(int i=0;i<arr.length;i++) {
for(int j=2;j<arr[i].length(); j++) {
char c1= arr[i].charAt(j-2);
char c2=arr[i].charAt(j-1);
char c3=arr[i].charAt(j);
if (c1=='F' && c2 == 'B' && c3 == 'I') {
System.out.print((i+1)+" ");
cnt++;
break;
}
}
}
if(cnt==0)
System.out.println("HE GOT AWAY!");
}
}
입력된 문자열 한 줄당 FBI가 연속적으로 입력됐을때 FBI 요원을 출력하도록 하였다. FBI가 연속적으로 입력되지 않으면 FBI가 없는 것이므로 "HE GOT AWAY!"가 출력되도록 하였다.
아직 배열을 활용한 for문에서 index가 헷갈린다. 이 문제를 풀때 index 오류가 계속 났었다.
출력 조건을 잘 확인하자.. break를 사용하지 않아 검사 시 계속 오류가 났다.