본문 바로가기

스터디

(23)
시간복잡도(Time Complexity) 더보기 int[] multiply(int[] inputs, int multiplier){ int[] nums = new int[inputs.length]; //C1 for(int i = 0;i
시간 복잡도 코딩 테스트 문제 중에는 프로그램 실행 시간이 특정 시간 미만이어야 한다는 조건이 있는 경우가 있습니다. 일반적으로 이 시간은 1초를 기준으로 하며, 문제에서 주어지는 모든 형태의 입력을 처리하는 데 프로그램이 1초 이상 걸리면 안 된다는 의미입니다. 시간 제한이 있는 문제에서는 실행 시간이 해당 제한 시간을 넘어간다면 시간 초과(TimeOut, TO)가 발생하여 오답으로 처리됩니다. 우리가 작성하는 코드가 문제에서 요구하는 만큼 효율적인지 알려면 어떻게 해야 할까요? 코드의 실행 시간을 측정하는 가장 쉬운 방법은 직접 예시 입력을 넣어 프로그램을 실행해보는 것입니다. 하지만 효율성을 측정하는 문제의 경우 대부분 입력 크기가 매우 큽니다. 1만 개의 입력을 받는 문제를 풀 때 코드가 효율적인지 측정하기 ..
BufferedReader, BufferedWriter BufferedReader와 BufferdWriter는 버퍼를 사용하여 읽기와 쓰기를 하는 함수이다. 버퍼를 사용하지 않는 입력은, 키보드의 입력이 키를 누르는 즉시 바로 프로그램에 전달 반면! 버퍼를 사용하는 입력은, 키보드의 입력이 있을 때마다 한 문자씩 버퍼로 전송된다. 버퍼가 가득차거나 개행 문자가 나타나면 버퍼의 내용을 한 번에 프로그램에 전달한다. + 버퍼 : 일시적으로 데이터를 보관하는 임시 메모리 영역 스캐너보다 버퍼리더의 버퍼 사이즈가 압도적으로 크기 때문에 입력이 많을 때 버퍼리더가 훨씬 유리하다! Q. 근데 버퍼를 거치는 것보다, 입력을 받는 즉시 출력하는게 더 빠른거 아닐까? A. 생각보다 외부장치 (키보드, 모니터 등)는 데이터 입출력하는데 시간이 오래 걸린다. 그래서 바로 이동시..