///////
Search

박태근

selectionSort 문제
package Homework0928; import java.util.Arrays; public class selectionSort { public static void main(String[] args) { int[] a = { 7, 3, 2, 8, 9, 4, 6, 1, 5 }; int tempValue, tempJ = 0; //값을 바꾸어주려면 값의 위치와, 값을 이동시킬 변수가 필요 //tempJ가 위치 tempValue가 값을 이동시킬 변수 /* 이하 최소값을 찾는 코드 */ for (int i = 0; i < a.length; i++) { // 배열 처음부터 끝까지 반복 (i는 현재 위치) int min = Integer.MAX_VALUE; // 제일 작은 수를 찾기 위해, min은 int의 최대 값으로 임시 세팅 2147483647 // 그래야 2147483647이 아니라면 어떤 수이던 첫번째 비교대상이 항상 min에 저장될것이므로 /* int j = i; 첫 for 문이 1번 돌때는 첫번째 자리에 최소값을 위치시키고 두번째 for문에서 그다음부터는 2번째자리부터 비교를 하므로, 두번째 for문의 초기값을 1씩 증가하는 i로 설정 */ for (int j = i; j < a.length; j++) { if (a[j] < min) { // 현재 위치부터 배열 마지막까지 반복문 돌면서 최소 값을 계속 찾음 min = a[j]; //min에 작은값 저장 tempJ = j; //tempJ에 작은 값의 배열 위치를 저장 } } /* 이하 값 바꾸는 코드 */ tempValue = a[i]; // tempValue에 i번 위치의 값을 저장 a[i] = a[tempJ]; // a[i] 위치에 최소값으로 찾아낸 a[tempJ]의 값을 저장 a[tempJ] = tempValue; //a[i]에 있던 값을 최소값이 있던 자리에 저장 } System.out.println(Arrays.toString(a)); } }
Java
복사
stack 문제
package Homework0928; import java.util.ArrayList; // 가장 최근에 스택에 추가된 항목이 가장 먼저 제거될 항목 class Stack { ArrayList<String> list = new ArrayList<>(); public void pop() { /* 최상위에 위치한 자료를 추출한 후에 스택에서 제거 */ if (isEmpty()) { System.out.println("Stack is empty!"); } else { System.out.println("삭제된 문자 : " + list.get(list.size() - 1)); list.remove(list.size() - 1); } } public void push(String item) { /* 스택의 최상위에 새로운 자료를 삽입한다. */ System.out.println("입력된 문자 : " + item); list.add(item); } public void clear() { /* 스택에 존재하는 모든 자료들을 삭제한다. */ list.clear(); System.out.println("스택이 초기화 되었습니다."); } public void peek() { /* 가장 최상위에 위치한 자료를 추출한다. pop 메소드와는 달리 스택에서 제거하지 않는다. */ System.out.println("엿볼려는 문자 : " + list.get(list.size() - 1)); } public void printStack() { /* 스택을 출력한다. */ if (!isEmpty()) { System.out.print("Stack elements : "); for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i) + " "); } } else { System.out.println("Stack is empty!"); } System.out.println(""); } public boolean isEmpty() { /* 스택이 empty 상태인지 확인한다. 비어있으면 true를 반환한다. */ if (list.size() == 0) { return true; } return false; } } public class StackTest { public static void main(String[] args) { Stack myStack = new Stack(); myStack.push("A"); myStack.printStack(); myStack.push("B"); myStack.printStack(); myStack.push("C"); myStack.printStack(); myStack.pop(); myStack.printStack(); myStack.pop(); myStack.printStack(); myStack.peek(); myStack.printStack(); myStack.clear(); myStack.printStack(); } }
Java
복사