사용자가 입력한 단어를 알파벳순으로 정렬하는 문제222입니다 이를 해결하는 다음 프로그램을 해석하세요
단어를 입력하세요: carrot 단어를 입력하세요: banana 단어를 입력하세요: apple 단어를 입력하세요: dog 단어를 입력하세요: egg apple banana carrot dog egg
단어를 입력하세요: 귤 단어를 입력하세요: 배 단어를 입력하세요: 사과 단어를 입력하세요: 포도 단어를 입력하세요: 바나나 귤 바나나 배 사과 포도
단어를 입력하세요: 기차 단어를 입력하세요: 버스 단어를 입력하세요: 택시 단어를 입력하세요: 자동차 단어를 입력하세요: 비행기 기차 버스 비행기 자동차 택시
프로그램 시작
단어 입력
단어 정렬
마지막 칸에 가장 큰 값을 저장하면서 한 칸씩 앞으로 영역 좁혀가기
영역의 첫번째 칸부터 인접한 두 값을 비교하면서
앞칸 단어가 뒤칸 단어보다 알파벳순으로 뒤면, 두 단어를 맞바꾸기
정렬된 단어 출력
프로그램 종료
|
|
|
|
// 파일명 : ./Chapter09/WordSort.java
import java.util.Scanner;
public class WordSort
{
// 프로그램 시작
1 public static void main( String[] args ) {
Scanner scan = new Scanner( System.in );
// 단어 입력
2 String[] words = { "", "", "" };
for ( int index = 0; index < words.length; index++ ) {
System.out.print( "단어를 입력하세요: " );
words[index] = scan.next();
}
// 단어 정렬
// 마지막 칸에 가장 큰 값을 저장하면서 한 칸씩 앞으로 영역 좁혀가기
3 for ( int last = words.length - 1; 0 < last; last-- ) {
// 영역의 첫번째 칸부터 인접한 두 값을 비교하면서
4 for ( int index = 0; index < last; index++ ) {
// 앞칸 단어가 뒤칸 단어보다 알파벳순으로 뒤면, 두 단어를 맞바꾸기
5 if ( words[index].compareTo( words[index+1] ) > 0 ) {
String temp = words[index];
words[index] = words[index+1];
6 words[index+1] = temp;
}
}
}
// 정렬된 단어 출력
for ( String word : words )
System.out.print( word + " " );
scan.close();
// 프로그램 종료
7 }
}
※ 실행순서 및 메모리상태는 A키(이전) 및 D키(다음)를 눌러도 확인할 수 있습니다