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
복사