본문 바로가기

old/Algorithm Solving

Geekina Loves Order 문제의 자바 솔루션

반응형

문제

the-easiest-ever-coding-challenge-4 | Practice | GeeksforGeeks

문제 해결 방법

  • Geekina는 문자열 내의 모든 문자가 ASCII 값에 따라 오름차순으로 정렬되어 있으면 해당 문자열을 좋아합니다.
  • Geekina는 문자열 내의 문자 중 더 낮은 ASCII 값의 문자가 더 높은 ASCII 값의 문자 뒤에 나온다면 해당 문자열을 싫어합니다.
  • 모든 문자가 ASCII 값에 따라 오름차순으로 정렬되어 있으면 1을 리턴합니다.
  • 이전문자가 현재의 문자보다 ASCII값이 높으면 0을 리턴합니다.
  • 모든 이전문자가 현재의 문자보다 ASCII값이 낮으면 1을 리턴합니다.

Github Link

https://github.com/eunhanlee/GFG_GeekinaLovesOrder_Solution.git

시간복잡도: O(n), 공간복잡도: O(1)

class Solution {

    /**
     * 문자열의 ASCII 값 순서를 기준으로 Geekina가 문자열을 좋아하는지 확인합니다.
     *
     * @param N 문자열의 길이입니다.
     * @param S 입력 문자열입니다.
     * @return 1은 Geekina가 문자열을 좋아하면, 0은 그렇지 않을 경우입니다.
     */
    public static int validString(int N, String S) {
        for (int i = 1; i < N; i++) {
            if (S.charAt(i) < S.charAt(i - 1)) {
				// 더 낮은 ASCII 값을 가진 문자가 더 높은 ASCII 값을 
				// 가진 문자 뒤에 나온다면 Geekina가 문자열을 싫어합니다
                return 0; 
            }
        }
        return 1; // 모든 문자가 ASCII 값 순서대로 오름차순으로 정렬되어 있다면 Geekina가 문자열을 좋아합니다
    }
}
반응형