알고리즘

입력 받은 문자열 배열에서 원하는 값의 첫번째 원소와 마지막 원소를 찾는 알고리즘

개발 초보 2023. 4. 14. 11:17
import java.io.*;
import java.lang.*;
import java.util.*;


public class Main {
	public static final Scanner scanner = new Scanner(System.in);

	/**  
     * @param school 각 사람들의 소속학교 정보 배열
     * @param n      사람들의 수
     * @param findName 찾을 학교 이름
     */
	public static int[] getIndexes(String[] school, int n, String findName){
		int firstIndex = -1; //존재하지 않으면 -1
		int lastIndex = -1;  //존재하지 않으면 -1
		
		for(int i = 0; i < n; i++){
			if(school[i].equals(findName)){
				if(firstIndex == -1){
                			firstIndex = i + 1; //인덱스 번호가 아닌 순서를 출력해야 하기에 + 1을 해줌
				}
				lastIndex = i + 1; //기존 lastIndex에 덮어 쓴다
			}
		}
		return new int[]{firstIndex, lastIndex}; //firstIndex와 lastIndex만이 값으로 있는 배열을 반환
	}

	public static void main(String[] args){
		int n = scanner.nextInt(); //배열 크기 입력 받음
		String[] schools = new String[n]; 
		for(int i = 0 ; i < n ; i++){ //배열 크기만큼(n만큼) 문자열 배열을 입력 받음
			schools[i] = scanner.next();
		}
        String findName = scanner.next();
		
		int[] indexes = getIndexes(schools, n, findName);
		System.out.printf("%d %d\n", indexes[0], indexes[1] );
	}

}

 

10주 완성 알고리즘 코딩테스트 - goorm edu에서 들으실 수 있는 내용입니다.