반응형 자바 JAVA/자바 기초16 자바 변수 : 기본형과 참조형 그리고 기본형의 종류와 범위 변수(variable) 변수란 하나의 값을 저장할 수 있는 저장공간이다. 변수 선언과 대입 더보기 변수타입 변수이름; ① 변수의 선언 정수를 저장하기 위한 변수 x를 선언 int x; ② 변수에 대입 변수에 5라는 값 저장 x = 5; ①에서 x라는 이름의 변수(저장공간)이 생기고 ②의 문장으로 x에 5가 대입된다. 상수(constant) : final키워드 상수는 변수 처럼 값을 저장할 수 있는 공간으로 값을 한번 초기화(저장)하면 다른 값으로 변경할 수 없다. 상수를 선언하는 방법은 변수와 동일하며 변수 타입 앞에 키워드 final을 붙여주면 된다. 상수의 이름은 모두 대문자로 하는 것이 관례이고, 여러 단어로 이루어져 있을 경우 '_' 로 구분한다. 더보기 final 타입 변수명 = 값; 리터럴(l.. 자바 JAVA/자바 기초 2023. 5. 8. 만족하는 수와 만족하지 않는 수 판별하기 단하나라도 만족하는 경우를 찾을 땐, a, b, c중에 하나라도 짝수가 있는지 판단할땐 주어진 숫자의 개수가 정해져 있는 경우에는 if - or 연산을 하면된다. a부터 b 사이에 있는 수들 중 짝수가 하나라도 있는지 a부터 b까지 숫자들을 일일이 확인해 봐야 하기 때문에 for loop이 필요하고, 이처럼 여러 선택지들 중 단 하나라도 조건을 만족하는 경우가 있는지는 true, false 두 값을 갖는 boolean type의 변수를 활용해 해결 int a, b; boolean satisfied = false; for (int i = a; i 자바 JAVA/자바 기초 2023. 2. 1. 자바 반복문 continue, break, 무한루프 continue a부터 b까지의 숫자들 중 짝수가 아닌 경우에만 곱 구할때 반복문안에 continue 라는 키워드를 사용할 수 있다. continue는 for, while 반복문 안에서 사용이 가능하다. for (int i = a; i < b; i++) { 실행문1; if (조건) { 실행문2; continue; } 실행문3; } continue는 해당 조건에 만족하는 경우에는 아래 코드는 더이상 실행하지 않고, 다시 위로 올라가 그 다음 for loop를 실행한다. continue는 조건문과 같이 쓰여야한다. public class Main { public static void main(String[] args) { int a = 5, b = 8; int prod = 1; for (int i = a; .. 자바 JAVA/자바 기초 2023. 1. 31. 자바 자료구조 - 이중 연결 리스트 단일 연결 리스트를 사용하면 앞으로만 이동할 수 있는 한계점 때문에 뒤로 탐색하는건 어려웠다. 이중 연결 리스트를 사용하면 next를 확장하여 특정 노드의 뒷 노드에만 주어지는게 아닌 앞노드까지 이어줄 수 있다. 이중연결 리스트의 구조는 아래와 같다. 기존의 연결리스트에서 추가적으로 prev가 생성되었다. 단일 연결 리스트와 마찬가지로 삽입, 삭제, 탐색이 모두 가능한 자료구조이다. 시간복잡도는 단일연결리스트와 동일하다. 탐색은 방향이 양쪽에서 가능하고, 하나씩 확인해야 하는 점에서 시간복잡도는 O(N)이다. 삽입, 삽제의 경우 인접한 곳의 선을 끊고 연결해주는 작업만 해주면 되어서 O(1)이라는 시간이 소요된다. 데이터를 삽입, 삭제할 시에는 양쪽 화살표를 둘 다 적절하게 변경해줘야한다. 이중 연결 리.. 자바 JAVA/자바 기초 2023. 1. 29. 자바 for-if문으로 조건을 만족하는 합, 곱 구하기 조건을 만족하는 합 구하기 초기 변수를 두고, 초기 변수에 반복문을 돌며 i를 계속 더해나가면 1부터 n까지의 숫자들 중 모든 합을 구할 수 있다. 이때 짝수나 홀수 등 조건을 걸어 조건에 만족하는 숫자의 합만 구해볼 수도 있다. public class Main { public static void main(String[] args) { int n = 6; int sumVal = 0; for (int i = 1; i > 12 짝수의 합만 구하는 문제에서는 0을 초기값으로 갖는 변수 sumVal를 활용하고 for 안에서 i값이 짝수일 때만 sumVal 값에 해당 숫자를 더해주는 식으로 진행해볼 수 있다. sumVal을 꼭 0으로 초기화 하고 진행해야한다. 조건을 만족하는 곱 구하기 조건을 만족하는 합도 구.. 자바 JAVA/자바 기초 2023. 1. 29. 자바에서 count 변수로 개수 세기 a부터 b까지의 숫자들 중 짝수나 홀수 등의 조건을 만족하는 개수를 셀 수 있다. 이 경우에는 0을 초기값으로 갖는 cnt라는 변수를 활용한다. for안에서 i값이 짝수일 때만 cnt값을 1씩 증가하는 식으로 진행하면된다. cnt의 경우 초기화 하고 진행 해야한다. 코드로 표현하면 아래와 같다. public class Main { public static void main(String[] args) { int a = 3, b = 8; int cnt = 0; for (int i = a; i > 3 count 변수를 사용할 때 System.out.println 함수의 위치에 따라서 출력 결과가 달라진다. public class Main { public static void main(String[] args).. 자바 JAVA/자바 기초 2023. 1. 29. 자바 자료구조 - 연결리스트(linked list) 리스트란? 데이터를 순서대로 나열한 자료구조이다. (스택과 큐 구조도 리스트 구조로 되어 있다.) 선형 구조를 갖는 리스트에는 선형 리스트와 연결리스트가 있다. 선형 리스트는 데이터가 배열처럼 연속하는 메모리 공간에 저장되어 순서를 갖고있다. 연결리스트는 데이터가 메모리 공간에 연속적으로 저장되어 있지 않더라도 각각의 데이터 안에 다음 데이터에 대한 정보를 갖고 있어 서로 연결된다. 배열의 시간복잡도를 생각해보면, 중간 삽입과 삭제의 시간복잡도가 O(N)이었다. O(1)과 O(N)의 효율은 차이가 많고, 삽입과 삭제를 매우 자주해야 하는 상황에선 배열보다 연결 리스트가 효율적일 수 있다. 하지만, 연결리스트는 탐색이 O(N)으로 느린 반면 삽입과 삭제는 O(1)로 매우 빠르기 때문에 삽입과 삭제가 잦은 .. 자바 JAVA/자바 기초 2023. 1. 28. 자바 함수정의 및 사용하기 원하는 목적이 있고, 그 목적을 마치 하나의 도구처럼 사용할 수 있도록 해주는게 바로 함수이며, 함수는 다음과 같이 정의할 수 있다. public static void print5Stars() { 코드 작성 } static이란? static의 경우 Java의 기본 골격인 main함수가 static으로 정의되어 있기 때문에 꼭 함수 선언시 static을 적어줘야한다. void란? 함수를 정의하기 위해서 꼭 반환 타입을 적어줘야하고, 바로 뒤에는 함수 이름을 적어주면된다. 위의 코드에서 void는 반환(return)값이 따로 없을 경우 써주면 되는것이다. 함수명 입력은 camel Case로 자바에서는 함수 이름을 적을때 소문자로 시작하여 의미 단위로 해당 단어가 시작될 때 다시 대문자를 적어 구분해주는 카멜.. 자바 JAVA/자바 기초 2023. 1. 26. 자바(Data Structure) 자료 구조 - 배열 *자료 구조 정의 배열을 공부하려면 자료구조가 무엇인지 알아야한다. 자료구조란 데이터 단위와 데이터 자체 사이의 물리적 또는 논리적 관계이다. 데이터 단위는 데이터를 구성하는 하나의 덩어리이고, 자료구조는 자료를 효율적으로 사용할 수 있도록 컴퓨터에 저장하는 방법이다. *시간 복잡도 : 실제로 값을 어디에 삽입하냐에 따라 시간복잡도는 달라진다. 보통 시간복잡도라 부를 때 최악의 상황에서의 시간복잡도를 얘기하게된다. 배열(Array) - 많은 수의 데이터를 다룰 때 사용하는 자료구조이다. 많은 데이터를 저장하기 위해 주로 배열을 사용한다. 배열로 주로 값을 담고, 값을 배열에서 삭제하고, 원하는 값을 배열에서 찾게된다. 이런 삽입, 삭제, 탐색 연산을 일반적으로 기본 연산이라고 부른다. - 각 데이터를 인.. 자바 JAVA/자바 기초 2023. 1. 23. 자바 - Scanner(System.in) 특정 문자를 사이에 두고 입력받기 오늘은 입력 받는 메서드 Scanner에 대해 복습을 했다. Scanner로 그냥 단순히 입력 받을 수도 있고, 특정 문자를 기준으로 하여 입력 받을수도 있었다. 그리고 입력 받은 문자를 split으로 쪼개서 배열에 넣어줄 수 있다는 편리함도 공부했다. sc.useDelimiter(특정 문자) : 기준을 둬서 입력 받는다. import java.util.Scanner; public class Main { public static void main (String args[]) { Scanner sc = new Scanner(System.in); sc.useDelimiter(":"); // : 기준으로 잘라서 입력 받겠다는 뜻 int a = sc.nextInt(); // : 기호가 나오기 전까지 입력 진행 .. 자바 JAVA/자바 기초 2023. 1. 23. 자바 반복문 for, while문 for문 주어진 횟수만큼 반복하여 실행한다 for(초기값; 조건문; 증가치;){ 반복하여 실행할 내용 - 실행문; } 1. 기본 사용방법 for(int i =0; i > 0 1 2 3 4 기본별찍기 for(int i = 0; i > * ** *** **** ***** continue와 만난 반복문 for(int i = 0; i >.. 자바 JAVA/자바 기초 2023. 1. 5. 자바 조건문 - if와 switch if문 : 만약에 ~ 조건이라면 실행문을 실행시킨다. 조건문이란 조건에 따라 무엇을 실행할지 분기하는 구조이다. if문 기본 구조 if(조건문1) { 조건문1이 만족할 때 실행할 내용; } else if(조건문2) { 조건문2를 만족할 때 실행할 내용; } else { 그 외의 상황에서 실행할 내용; } 첫 if에서 조건문1이 해당하면, 조건문을 빠져 나온다. 해당하지 않다면 조건문2로 이동하여 조건문을 계산한다. 만족한다면 중괄호 안의 실행문이 동작하고, 만약 조건문2 조차 만족하지 않을 경우에는 아무것도 만족하지 않기 때문에 else의 실행된다. // score에 81점을 저장했다. int score = 81; char grade = 0; // 변수의 점수를 if문의 각 조건식으로 비교하여 // 조건.. 자바 JAVA/자바 기초 2023. 1. 5. 이전 1 2 다음