java 코딩테스트 준비하는 목적?
회사에서 여러 시스템에 대해서 공부하고 접하다보면 java공부가 필수임을 느낀다ㅠㅠ
결국에는 java를 할 줄알아야하기에 겸사겸사 코딩테스트 준비를 하게되었다 ㅎㅎ
1. 환경세팅
기본적으로 vscode + jdk 설치로 준비했다.
가장 빠르게 준비할 수 있는 방법인거 같다!
https://logs-jejustone.tistory.com/102
2. 기본적인 자바 실행 순서 확인
자바코드 .java를 실행하면 .class파일이 실행된다
전체적인 순서는
.java파일(human) -> compiler에 의해 JVM이 읽을 수 있는 .class파일로 변경 -> 실행됨
이전에 c++언어와 python으로 코딩테스트를 준비했었기에 기본적인 문법은 알지만..! 그래도 이 강의를 들으면 알고리즘을 풀기전, 전반적으로 기본기를 쌓을 수 있다!!
https://school.programmers.co.kr/learn/courses/5/5-무료-자바-입문
3. 변수 선언 및 타입
int형 변수는 최대 2147483647까지 담을 수 있습니다.
byte < char, short < int < long < float < double
크기가 큰 타입의 변수 -> 작은 타입안으로 넣을때는 명시적 형변환 필요
long x = 50000;
int y = (int) x;
4. 연산자
위 두개의 차이점은?
즉 x1++는 y에 이미 x1을 할당한다음에 x1값을 1증가시킴++x2는 먼저 더하고 z에 할당
5. 비교연산자boolean c = (a > b );
이런식으로 결과를 한번에 c에 true/false로 할당할 수 있다
6. 논리연산자 ( &&, ||, ^ , !)
- 배타적 논리합 () -> 피연산자가 서로 다른 값일 경우만 연산 결과가 true 이다.
- System.out.println(b1 ^ b2); -> b1은 true, b2는 false로 서로 다르므로 결과는 true 이다.
- System.out.println(b1 ^ b3); -> b1, b3 모두 true로 서로 같다. 결과는false 이다
7. 삼항연산자
ampm = (hour < 12) ? "오전" : "오후" ;
앞의 조건이 맞으면 첫번째항, 틀리면 두번째항
8. do while
do{
value = scan.nextInt(); // Scanner클래스를 이용하여 키보드로 부터 숫자값을 입력받습니다.
System.out.println("입력받은 수 : " + value);
}while(value != 10); // 입력받은 값이 10이 아닐 경우에는 계속 반복합니다.
9. 배열, 2차원배열
2차원배열에서는 array[1] = 10 이런식으로 상수가 출력되는것이 아니다. array[1]은 이제 새로운 배열의 포인터가 되는셈..
int[] array1 = new int[4];
int[][] array2 = new int[3][4];
10. for each 구문 - 배열에 있는 value를 하나씩 출력할 수 있는 그런..
int[] iarr = {10,20,30,40,50};
for(int value:iarr){
System.out.println(value);
}