본문 바로가기

알고리즘

두 문자열 중 사전순으로 앞서는 문자열을 알아내는 함수

import java.io.*;
import java.lang.*;
import java.util.*;

class StringUtil {
	
	//비교를 통한 문자열의 사전순으로 우선되는 문자열을 찾는 함수 
	public static int compare(char[] s1, char[] s2){
		int n = Math.min(s1.length, s2.length); //둘 중 더 짧은 배열의 길이만큼 문자를 반복하여 비교함
		for(int i=0; i<n; i+=1){
			if(s1[i] != s2[i]){
				return (int) s1[i] - s2[i]; //s1[i]가 사전순으로 앞이면 음수, 뒤면 양수를 반환함
			}
		}
		return s1.length - s2.length; //더 짧은 문자열의 길이만큼 반복 비교했을 때, 모든 문자가 일치하면 둘 중 더 짧은 문자열이 사전순으로 앞섬
	}

	public static boolean equals(char[] s1, char[] s2){

		if(s1.length != s2.length){ //두 문자열의 길이가 다르면 false를 반환
			return false;
		} 

		for(int i=0; i<s1.length; i++){ //두 문자열의 길이가 같은 경우에만 비교를 수행 
			if(s1[i] != s2[i]){
				return false;
			}
		}
		return true; //모든 문자가 일치해야만 true를 반환
	}
}
public class Main {
	public static final Scanner scanner = new Scanner(System.in);
	
	public static void main(String args[]){
		
		String t1 = scanner.next();
		String t2 = scanner.next();
		
		char[] s1 = t1.toCharArray();
		char[] s2 = t2.toCharArray();
		boolean result = StringUtil.equals(s1, s2);
		System.out.println(result);
	}
}

 

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