본문 바로가기
* Web/[Back] Java

[Java 자바] 코딩 테스트 입문자를 위한 static 개념

by codinguser 2021. 7. 5.

static에 대한 개념을 책으로 수백번 찾아 보는것보다는 코드로 이해하는게 100배 나았던 경험이 있다.

코드로 한번에 static 개념을 이해해보자.

 

 

 

우선 가져가야 하는 큰 개념은 아래와 같다.

 

```

1) 온라인 컴파일러(Repl.it or 프로그래머스 에서 제공하는 컴파일러 등)가

시작 함수를 main class의 main method를 지정 해야 한다. 그렇기에, 초기 프로그램 실행 시 시작 함수 (main method)를 호출해야만 한다.

 

 

2) main method가 memory에 있어야 한다.

(그래야 실행되니까)

 

 

3) memory(메모리)에 있으려면?

-1) static으로 선언을 하거나

-2) new Class()(생성자 형태로)

```

형태로 만들어야 한다.

이때 클래스이름이 무조건 Main일 필요는 없다. 하지만 메소드는 무조건 static main으로 줘야한다.

 

 

 

 

 

코드로 살펴보기전 코딩테스트를 위한 기본 프로세스

 

: 일반적으로 코딩 테스트를 준비하는 사람들은 온라인ide를 이용하여 먼저 풀고 난 뒤에, 해당 코딩 테스트 사이트에다 옮겨 적는 프로세스를 거친다. 또한 테스트 케이스를 작성하여 검증 해보는 작업 또한 거친다. 그렇기에 이 글은 온라인ide(repl.it 등..) -> 온라인 코딩 테스트 서버(프로그래머스, 백준 등..)로 사용하는 순서로 글을 풀이하였다.

 

 

 

 

(1) 온라인 IDE(rep.it)

[Java 자바] 코딩 테스트 입문자를 위한 static 개념
이미지 출처 : repl.it

 

아! 메모리에 올라가기 위해서 static 이라는 키워드를 사용했구나. 그래야 호출이 되니까

 

 

 

 

(2) 프로그래머스

Java 자바
이미지 출처 : 프로그래머스

어?. rep.it과 다르게 왜 static이 없을까? 그냥 프로그래머스에 있는 컴파일러가 class Solution 클래스 안에 static으로 선언 안해도 되게끔 설정 해놨나보네 아마 static main() method이 생략되어있나 보구나

 

 

 

 

 

[실제 코드로 살펴보기]

 

해당 문제를 읽고 한번 생각해보자!(못풀어도 괜찮다. static 개념만 가져가면 되니까)

 

 

 

 

[programmers] 프로그래머스 Level1 평균 구하기(파이썬 Python 자바 Java)

[programmers] 프로그래머스 Level1 평균 구하기 (파이썬 Python 자바 Java) * 문제출처 : 프로그래머스 코딩 테스트 연습, 알고리즘 문제 * 소스 코드 및 정리한 내용의 저작권은 글쓴이에게 있습니다. 프

codinglevelup.tistory.com

 

 

(1)

 

[Java 자바] 코딩 테스트 입문자

 

(어 뭐야.. 이렇게 해서 프로그래머스에서 제출 할 때는 잘 됬는데?..)

(오류창 보니까 could not find or load main class Main이 보인다.!!)

아.. 메모리에 안 올렸구나.

 

 

(2)

자바 static

 

: 프로그래머스에서는 잘만 실행되겠지!

그렇다면 (1)의 경우를 어떻게 해야 온라인 ide에서 실행되게끔 만들 수 있을까?

 

 

 

 

 

 

 

(3)

 

java static
이미지 출처 : repl.it

 

다시 repl.it 으로 넘어가자 만약 하나의 main class 안에 아래와 같이 하면 검증까지 되니 함수에 static을 올리고 테스트케이스를 작성해보면 되겠네

 

 

 

(4)

java
이미지 출처 : repl.it

 

: 만약 main을 분리한다면 이리 쓰고 검증까지 해야겠구나.

 

// 이게 생략!

class Main {
public static void()
    {

       Solution sol = new solution();
        check(sol.solution());
    }
}

 

 

참고1)

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

 

댓글