공부하기/백준

[Java] 백준 풀기 11536 - 줄 세우기

XEV 2023. 7. 14. 23:43

자바 백준 11536번

실버 5

https://www.acmicpc.net/problem/11536

 

11536번: 줄 세우기

이름이 증가하는 순으로 나타나면 INCREASING, 감소하는 순이면 DECREASING을 한 줄에 출력한다. 만약 위의 두 경우가 아니라면 NEITHER를 출력한다.

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 구현, 문자열, 정렬

 

 

 

 

 

문제 풀기

입력받은 문자들을 compareTo() 메서드를 사용하여 정렬 순서를 확인할 수 있다.

모든 이름을 배열에 입력받고, 오름차순과 내림차순의 상태를 지정할 초기값을 설정한 후 현재 이름과 이전 이름의 순서에 따라 초기값 변경이 이루어지는 결과에 따라 "INCREASING", "DECREASING", "NEITHER"을 판별한다.

 

 

compareTo() 메서드의 반환 값

  0보다 작은 값: 현재 객체가 전달된 객체보다 작음.
  0: 현재 객체와 전달된 객체가 동일함.
  0보다 큰 값: 현재 객체가 전달된 객체보다 큼.


문자열의 경우, 사전 순서로 비교

 

 

 

 

코드 보기

import java.util.Scanner;

public class Main {
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int N = sc.nextInt();
        sc.nextLine();

        String[] names = new String[N];
        for (int i = 0; i < N; i++) {
            names[i] = sc.nextLine();
        }

        String result = determineOrder(names);

        System.out.print(result);
    }

    public static String determineOrder(String[] names) {
        boolean increasing = true;
        boolean decreasing = true;

        for (int i = 1; i < names.length; i++) {
            if (names[i].compareTo(names[i - 1]) < 0) {
                increasing = false;
            } else if (names[i].compareTo(names[i - 1]) > 0) {
                decreasing = false;
            }
        }

        if (increasing) {
            return "INCREASING";
        } else if (decreasing) {
            return "DECREASING";
        } else {
            return "NEITHER";
        }
    }
    
}