코딩테스트

코딩테스트 언어를 Java로 선택한 이유 + 소소한 팁

sinw212 2022. 9. 5. 11:09

작년 여름즈음, 개발자로서 이직을 하기 위한 가장 기본 준비인 코딩테스트를 시작해보기로 했다.

취준 시절 했던 코딩테스트 준비는, 했다고 하기도 민망할 정도의 수준이었기에
이번 준비는 좀 제대로 해보리라 다짐했다.

처음 코딩테스트 준비를 시작하던 당시, 가장 많이 사용되는언어로 1순위는 C++, 2순위는 Python이었다.
그나마 습득이 쉽다고 판단한 Python을 선택하게 되었다.

꽤나 열심히 공부했고, 여러 기업 코딩테스트에도 응시했지만
가장 중요한 것을 간과하고 있었고, 그 문제에 부딪히는 순간이 왔다.

그건 바로, 안드로이드 직무는 Java 혹은 Kotlin으로 언어가 제한되어 있는 기업이 꽤 많다는 것이었다.

쉽고 간결하고, 이미 손에 많이 익은 Python을 포기하고 싶지 않았지만,
안드로이드 개발자의 길을 걷기로 마음을 굳힌 나에게 Python은 큰 메리트가 없는 언어였다.
깔끔하게 포기하고 Java로 공부를 다시 시작하기로 결심했다.

Java로 코딩테스트를 응시하기로 결정한 이상, 코딩테스트를 준비하는데 있어 소소한 팁들에 대해 정리해봤다.

  1. IDE 사용이 허용되지 않는 경우를 대비하여, 자동완성에 의존하지 않는 것이 좋다.
  2. 입력을 받는 경우, Scanner 보다는 BufferedReader를 사용하자.
  3. String을 자를 때 split을 사용하는데, 한줄 입력이 여러번 들어와 파싱하는 경우 split 보다는 StringTokenizer를 사용하자.
  4. 여러번 출력해야 하는 경우, StringBuilder를 사용하자.
  5. String의 특정 범위를 자를 때는 substring()을, 배열의 특정 범위를 자를 때는 Arrays.copyOfRange()를 사용하자.
  6. ArrayList를 정렬할 때는 ArrayList.sort()를, List를 정렬할 때는 Collections.sort()를 사용하자.
  7. 배열을 초기화하기 위해서는 java.util.Arrays의 Arrays.fill(배열, 초기화값)을 사용하자.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Solution {
	public static void main(String args[]) throws IOException {
    	//시간, 메모리의 효율을 높일 수 있음
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        String s = st.nextToken();
    }
}


참고사이트
https://mangkyu.tistory.com/181?category=761305
https://velog.io/@alstjdwo1601/Java-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8-%EA%B4%80%EB%A0%A8-%ED%8C%81#10-%EC%A0%95%EB%A0%AC
https://gwang920.github.io/java/Java-condingGrammer/