본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q2007 : 오름차순? 내림차순? 1

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q2007 : 오름차순? 내림차순? 1 (자바, JAVA)입니다.

Intro

Question

문제 설명

성근이는 오름차순과 내림차순에 대한 공부를 하고 있다.

어떤 수 n개가 주어지면 그 수열이 오름차순인지, 내림차순인지, 섞여 있는지 판단하시오.

입력

첫째 줄에 데이터의 개수 n이 주어진다. ( 2 <= n <=100 )
둘째 줄에 n개의 서로 다른 데이터 값이 공백으로 분리되어 입력된다.

출력

데이터의 순서가 오름차순일 경우 "오름차순"을 출력,
내림차순일 경우 "내림차순"을 출력,
둘 다 아닐 경우 "섞임"을 출력하시오.

예시

  • 입력 :
    5
    2 5 8 10 29
  • 출력 : 오름차순

Solution (풀이)

  • 풀이 : 메모리 11144, 시간 : 62
public class Answer1 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int count = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");

        // 첫 숫자
        int first = Integer.parseInt(st.nextToken());
        // 경로(오름차순 or 내림차순)
        String path = null;
        for (int i=0; i<count-1; i++) {
            int number = Integer.parseInt(st.nextToken()); // 다음 숫자

            if (path == null) {
                if (number > first) {
                    path = "오름차순";
                } else if (number < first) {
                    path = "내림차순";
                }

                first = number;
            }

            else if (path.equals("오름차순")) { // 이미 오름차순인 경우 섞임 판단
                if (number > first) {

                } else {
                    path = "섞임";
                }
            }

            else if (path.equals("내림차순")) {  // 이미 내림차순인 경우 섞임 판단
                if (number < first) {

                } else {
                    path = "섞임";
                }
            }

            else if (path.equals("섞임")) { // 섞임이라면 바로 for문 종료
                break;
            }
        }

        System.out.println(path);
    }

}

Ranking(순위)

반응형