본문 바로가기

java

java 코딩테스트 준비 1편!

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. 연산자

int x1 = 5;
int x2 = 5;
int y = x1++;
int z = ++x2;
System.out.println(y);
System.out.println(z);
 
y: 5
z :6
x1 : 6
x2 : 6

위 두개의 차이점은?

 

즉 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);
    }