본문 바로가기

반응형

Programming

(171)
병합정렬 (Merge Sort) 테스트 파일은 삽입정렬과 같지만 인스턴스생성해주는 부분만 바뀌었습니다. 두 조각으로 계속 나누다가 마지막에 하나가 남으면 다시 위로 병합하면서 정렬하는 병합정렬 이번에는 삽입정렬과는 다르게 생성자를 따로 만들지 않았다. 정렬할때 매개변수로 바로 입력값을 넣게 하였다. 실제로 사용자가 쓸수 있는 메소드는 단 하나 sort 메소드 테스트는 수업시간에 나온 예제 숫자입니다. 삽입정렬과 같은 숫자네;; 9 1 3 2 7 5 4 8
삽입정렬 (Insertion Sort) 오늘 배운 삽입정렬이다. InsertionSort.class 가 삽입정렬 클래스 입니다. sort_test.class 는 정렬 테스트를 위한 메인함수가 있는 클래스 입니다. 다른 정렬도 배우는 대로 추가할까 합니다. 멤버변수 data는 배열인데... 오타네요;; int data[] 이게 맞아요; 생성자와 정렬메소드를 제외하고는 외부에서 쓸필요가 없으므로 private로 접근제한 하였습니다. 생성자 함수로 정렬할 배열값을 입력하고 sort() 메소드를 호출하므로써 모든 과정이 끝납니다. sort() 는 정렬된 배열을 리턴합니다. 수업시간에 예제로 나온 숫자들로 테스트 하였습니다. 다른 숫자는 테스트안해봐서... 정확성을 뭐라 말할 수가 없네요;; 9 1 3 2 7 5 4 8
UML 모델링 기초 오랫만에 UML을 끄적여 보다보니... 기본 모델링도 너무 모르고 하는거 같아서...; 책을 참고하여 간단하게 정리해보았다. 기본 클래스를 나타내는 모양이다. 박스안에 3개의 공간으로 구분되어 있는데 첫 번째는 클래스 이름이다. 두 번재는 멤버변수 이다. (+ : public, - : private, # : protected) 세 번째는 메소드 이다. (+ : public, - : private, # : protected) 두개의 클래스를 연결하는 화살표는 연관을 나타내는 표시이다. 이게 많이 헷갈린다;;; A안에 iA라는 변수이름으로 B인스턴스를 15개 가지고 있다는 표시이다. 즉 iA[15] 라는 변수안에 모두 B인스턴스가 있다는 것이다. * 표시는 0개에서 무한개 이다. 자바에서 쓰이는 Vector..
'scanf'이(가) deprecated로 선언되었습니다. 비주얼 스튜디오 2005 이상을 사용할때 scanf 같은 함수를 사용할때 지정된 범위의 메모리 영역을 오버해서 위험하다 어쩌다 뭐 그런 내용이라는... 무시하고 그냥 scanf를 써도 되고 아니면 scanf_s 함수를 사용해도 된다고 한다. [MSDN] int scanf_s(const char *format [,argument]...); [Example] scanf_s("%d %d", &kor, &eng);
알고리즘 - Right Dominant Elements 이게 맞는지 모르겠지만 -_-; 오른쪽에 현재의 값보다 모두 작은 수인 것만을 뽑아낸것이 RDE 인가 그런가 보다 -_-; 10,9,5 는 오른쪽에 13 이 있으므로 RDE가 안되고 13 은 오른쪽에 모두 13 보다 작은 값이므로 RDE 이다. 2,7,1 은 8 때문에 RDE가 안된다. 8 은 오른쪽에 모두 8 보다 작으므로 RDE 이다. 4 는 6 때문에 안되고 6,3은 RDE 이다. 과제는 아니지만.. 그냥 해봤음;;
키보드 입력 - 문자열, 숫자 키보드로 입력받는 방법이다. System.in.read(); 이걸로 가능할줄 알았다.. 이건 한문자 밖에 안되더라;;;; 이걸 프로그램 다 완성하고 알았다...;; 그래서 찾은것이 다음과 같이 버퍼, 스트림 객체를 사용하는것이다. String data = null; BufferedReader inBuff = new BufferedReader(new InputStreamReader(System.in)); data = inBuff.readLine(); 이렇게 읽으면 결과가 data안에 문자열로 저장된다. 문자열로 쓰고싶으면 그대로 쓰면되고... 숫자로 쓰고싶으면 data = Integer.parseInt(inBuff.readLine()); 이렇게 바꿔주면 된다. 어떻게 동작되는지도 모르고 막 썼다 -_-; ..
소수점 표시 float형에서 System.out.print 로 출력할 경우 소수점아래가 꽤 많이 나온다. 이걸 줄이는 방법이 다음과 같다. import java.text.NumberFormat; 이건 c의 include랑 비슷한것임 실행코드는 아래와 같음 NumberFormat nf = NumberFormat.getInstance(); // 객체 인스턴스생성 nf.setMaximumFractionDigits(1); // 최대 소수점 자리수 nf.setMinimumFractionDigits(1); // 최소 소수점 자리수 System.out.print(nf.format(std[0].getAverage())); // 위에 설정한 소수점 포맷으로 적용해서 출력 처음에 이걸 검색해서 찾았는데도.. 잘못썼었다. nf.setM..
배열 선언 오늘 처음으로 자바로 뭔가를 만들어 봤음;; 만들다가 조금 힘들었던 부분중 하나가 배열 ㅋㅋ int[] a = new int[10]; a라는 이름으로 크기가 10인 배열을 선언하는 문장이다. 다른 타입도 똑같이 해주면 된다. 이건 금방 찾아서 했는데... 문제는 객체 배열이었다.. 객체도 위와 같은 방법으로 student[] std = new student[10]; 이렇게 하면 컴파일시 아무 문제도 없다. 하지만... 사용할때 std[1].name = "ABC"; 이렇게 할경우에도 컴파일시 아무 문제가 없다. 실행하면... 오류가 뜬다.. NULL 어쩌고 저쩌고 하는건데... 이것 때문에 엄청 헤맸다;; 결론은 std에 student 공간만 10개 만들었지.. 메모리(?)가 할당안된거 같다 해결방법은 사..

반응형