반응형
안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q2008 : 오름차순? 내림차순? 2 (자바, JAVA)입니다.
Intro
Question
문제 설명
숫자에 관심이 많은 영일이는 수열을 보고 오름차순 수열인지 내림차순 수열인지 판단하려고 한다.
오름차순이란 작은 수부터 큰 수 순서로 나열한것을 말하고, 내림차순은 그 반대인 경우이다.
이 두 경우가 아닌 경우는 '섞임'으로 판단한다.
n개의 수가 주어지면, '오름차순', '내림차순', '섞임'을 판단하는 프로그램을 작성하시오.
예를 들어, 1 1 2 3 5 5 6인 경우 '오름차순', 7 6 6 5 3 1인 경우 '내림차순', 21 22 21 22인 경우 '섞임'으로 판단한다.
만약 모두 같은 수가 입력되면 '섞임'으로 판단한다.
입력
첫째 줄에 데이터의 개수 n이 주어진다. (2≤n≤100)
둘째 줄에 n개의 수가 공백으로 분리되어 입력된다.(각각의 수는 1~200인 정수)
출력
수의 순서가 오름차순인 경우 '오름차순', 내림차순인 경우 '내림차순', 둘 다 아닐 경우 '섞임'을 출력한다.
예시
- 입력 :
7
2 3 5 5 6 6 7 - 출력 : 오름차순
Solution (풀이)
- 풀이 : 메모리 11160, 시간 : 65
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 = "내림차순";
}
}
else if (path.equals("오름차순")) { // 이미 오름차순 인 경우 섞임 판단
if (number >= first) {
} else {
path = "섞임";
}
}
else if (path.equals("내림차순")) { // 이미 내림차순 인 경우 섞임 판단
if (number <= first) {
} else {
path = "섞임";
}
}
first = number;
}
System.out.println(path==null ? "섞임" : path);
}
}
Ranking(순위)
반응형
'Algorithm > CodeUp' 카테고리의 다른 글
[CodeUp_Java] Q2023 : 엑셀의 열 순서 (0) | 2022.11.23 |
---|---|
[CodeUp_Java] Q2024 : 숫자를 한글로 변환 (0) | 2022.11.23 |
[CodeUp_Java] Q2025 : 좋은 날 (0) | 2022.11.22 |
[CodeUp_Java] Q2026 : 16진수를 2진수로 변환하기 (2) | 2022.11.22 |
[CodeUp_Java] Q2027 : 콘웨이의 1만 달러짜리 수열 (0) | 2022.11.22 |