자료구조
-
swap과 정렬 알고리즘Programming/Java 2021. 7. 5. 15:11
1. swap //a, b, temp는 모두 int형 변수이다. if(a>b){ int temp = a; a = b; b = temp; } 2. 정렬 알고리즘 import java.util.Scanner; public class BubbleSort{ public static void main(String[] args){ Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); //개수를 입력받아서 저장 int [] data = new int [n]; for(int i=n-1; i>0; i++){ for(int j=0;j data[j+1]){ int temp = data[j]; data[j] = data[j+1]; data[j+1] = te..
-
간단한 문제 풀이Programming/Java 2021. 6. 30. 17:49
1. 1부터 입력 받은 수 사이에 있는 모든 소수들을 출력하는 프로그램 배경지식: -입력 받은 수를 n이라고 하자. -1은 소수가 아니다. -2부터 n-1까지로 나눴을때 하나라도 나누어 떨어지는 수가 있다면 소수가 아니다. -n의 약수가 n/2보다 클 수 없기 때문에 2부터 n/2 사이의 정수로 나누어 떨어지는지 확인하는 것이 낫다. -2부터 n/2까지의 정수보다 2부터 루트n까지의 정수로 나누어 떨어지는지 확인하는 것이 더 낫다. 따라서 for(int j=2; j
-
[기본 문법 정리] 2. 배열Programming/Java 2021. 6. 30. 16:08
1. 배열 선언 int [] grades; //정수형 배열 선언 grades = new int [5]; //크기가 5인 정수형 배열이 만들어짐 합치면 int[] grades = new int[5]; char [] word; word = new char[10]; //합치면 char[] word = new char[10]; 2. 문제(1) 배열을 이용한 간단한 프로그램 사용자로부터 n개의 정수를 입력받아서 정수들의 합과 최댓값을 구하는 프로그램 //n개의 정수를 입력받아 //합과 최대값을 구하여 출력하는 프로그램 import java.util.Scanner; public class Example01 { public static void main(String[] args) { Scanner scanner = ..
-
[기본 문법 정리] 1. 변수, 문자열, 입력Programming/Java 2021. 6. 30. 14:12
1. 문자열과 정수 class code1{ public static int outNum; //전역변수 public static void main(String[] args){ int inNum =5; //지역변수 outNum =2; System.out.println(outNum + inNum); //결과: 7 System.out.println("num: " + outNum); //결과: num: 2 System.out.println("inNum: " + inNum + outNum); //결과: inNum: 52 } } 10번째 코드에서 문자열 + 정수 + 정수 를 하면 Java에서는 양쪽 중 하나가 문자열이면 다른쪽도 문자열로 해석하여 두 문자열을 합치게 된다. 그래서 결과가 5와 2를 문자열로 더하여 5..
-
03.포인터 배열Computer Science/자료구조 2020. 9. 16. 14:17
배열은 같은 타입의 변수가 여러 개 필요한 경우에 사용한다. int num[5] => num[0] ... num[4]까지 5개의 정수형 변수를 배열로 만든 것이다. 배열의 인덱스는 0부터 시작함에 꼭 유의한다. 포인터는 c언어에서만 사용한다. c언어에서는 메모리 효율을 높이는 것을 목적으로 포인터를 사용한다. 성능이 좋은 컴 퓨터에서는 굳이 포인터를 사용할 필요가 없다. 고성능 메모리라면 굳이 할당을 하지 않더라도 용량이 남기 때문이다. 포인터변수는 주소값만을 저장할 수 있는 변수이며 변수명을 통해 접근할 수 있다. 포인터에서 사용되는 기호는 두 가지이다. * : 주소를 저장할 수 있는 변수 선언 & : 변수가 가지고 있는 주소 값 -동적변수 공간 할당 p = (int * ) malloc(sizeof(i..
-
02. 추상자료형Computer Science/자료구조 2020. 9. 15. 10:08
대부분의 프로그래밍 언어의 자료형은 크게 두 가지로 분류할 수 있다. 첫번째는 숫자형, 이는 계산을 하기위한 목적이다. 두번째는 문자형, text형식으로 처리하는 형태이다. 추상자료형은 구현은 하지않고 추상적으로 자료형을 정의해두고 사용할 때 구현해서 사용하는 개념이다. 즉, 객체지향의 인터페이스와 같이 추상 자료형으로 정의만 하고 구현할 때 정의한 것을 불러서 사용한다. 1byte = 8bit 임을 참고하여 자료형들을 정리하면 아래와 같다. 타입 크기 값의 범위 정수형 char 8 bit (1 byte) -128 ~ +127 short 16 bit (2 byte) -32,768 ~ +32,767 int 32 bit (4 byte) -2,147,483,646 ~ +2,147,483,647 long 32 ..
-
01.객체지향 방법론Computer Science/자료구조 2020. 9. 14. 22:01
-객체지향 방법론이란? 객체를 중심으로 사고하는 체계. 복잡한 프로그래밍을 여러 개의 함수로 분리하고 함수들ㅇ르 모아두고 객체화하여 절차적 기법과 달리 재활용이 가능하다는 장점이 있다. 대표적인 언어로는 C++ 언어가 있다. -객체지향 용어 메시지, 요구사항 - 멤버변수 객체 - 변수와 방법(메소드) 정보의 은닉- 접근 제한자를 통하여 숨길 수 있다. -클래스 계층구조 하위클래스를 일반화 한 것이 상위클래스. 상위클래스의 특수한 경우가 하위 클래스. 객체지향 언어에서 클래스 간의 계층구조를 선언하는 것은 상위클래스의 속성(attribute)을 상속(inheritance)받기 위함이다 -객체지향 설계 과정 1단계. 문제를 풀기 위해 필요한 객체를 설정한다 2단계. 객체들 간의 유사속성을 파악한다 3단계. ..