알게된 팁-1

2022. 12. 27. 23:03

1. 코딩 테스트에서 문제를 보고 로직이 생각나자마자 바로 구현하지 말고 꼼꼼하게 문제의 조건을 파악하고 방향을 설정하자.

 

2. N 자리의 수를 입력 받을 때, N의 범위가 (1<= N <= 100)이면 int나 long으로 입력받을 수 없다. 이때는 문자열로 받아라.

 

3. 문자를 숫자형으로 변형하려면 ASCII 코드 값 48 또는 '0'을 빼주어야 한다.

(ex - '1' - 48 = 1)

 

4. String 값을 toCharArray로 char[] 형으로 변환이 가능하다.

 

5. 받는 데이터가 많을 때는 Scanner보다 BufferReader가 유리하다고 함.
-> BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

br.readLine()으로 한 줄씩 받아오기가 가능하다.

 

6. 숫자가 한 줄에 굉장히 많이 들어올 때 int로 받기 어려우므로 StringTokenizer를 사용한다.

StringTokenizer st = new StringTokenizer(br.readLine()); 이걸로 한줄 씩 받아온것을 Stringtoken화를 한 후 st.nextToken() 이걸로 앞에서 부터 하나씩 받아오면 된다.
(string -> 정수 바꾸고 싶을때는 Integer.parseInt() 사용)

 

7. 합배열이나 곱배열 다룰 때는 습관적으로 long 배열을 선언해라

 

8. N의 최댓값이 10,000,000 이라 엄청 크므로 이때는 O(nlong) 시간 복잡도 알고리즘도 위험할 수 있으므 O(n)을 써야한다 이런 경우에 자주 사용하는 방법은 투 포인터임.

(많이 풀다보면 한번쓰면 없어지는 유니크한 경우네 그리고 두개를 뽑아서 값을 만들면 되는구나 -> 투 포인터가 떠오르게 됨)

 

예시)  투 포인터 이동 원칙

- sum > N : sum = sum - start_index; start_index++;

- sum < N : end_index++; sum = sum + end_index;

- sum == N : end_index++; sum = sum + end_index; count++; (찾은 경우)

 

9. 자바는 Arrays.sort(A) 이걸 사용해서 간단하게 오름차순 정렬이 가능하다.

 

10. 문자열 입력받아서 char 배열에 넣기

BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
char A[] = new char[S];
A = bf.readLine().toCharArray();   // 문자열 입력받아서 char 배열에 넣는 법

 

'코테뿌수기 - java > Tip!' 카테고리의 다른 글

알게된 팁 - 5  (0) 2023.03.02
알게된 팁-4  (0) 2023.01.03
알게된 팁-3  (0) 2023.01.02
알게된 팁-2  (0) 2022.12.31

BELATED ARTICLES

more