본문 바로가기

카테고리 없음

4월 첫째주, 그리고 둘째주

재귀함수

함수 내부에서 자기 자신을 호출하는 함수를 의미한다.

재귀함수를 사용할 때 주의점은, 종료조건을 명확하게 설정해야 무한루프에 빠지지 않는다는 점이다.

 

ex.재귀함수를 이용한 알고리즘: 피보나치 수열, 이진탐색(정렬된 배열에서 원하는 데이터를 빠르게 찾을 때 사용),

유클리드 호제법(최대공약수 계산, 간단한 코테에서 출제가능), 이항계수

Scanner vs BufferedReader

 

가장 중요한 차이점은 Scanner는 다양한 타입을 입력받을 수 있으며 다양한 함수 사용이 가능하지만

BufferedReader는 String 타입만 입력받는 것이 가능하지만 속도는 매우 빠르다.

String 타입을 입력받으며, 코드 길이가 길 땐 BufferedReader를 사용이 효율적일 수 있다.

 

배열에서 내림차순으로 정렬하기

 

import java.util.Collections;
import java.util.Arrays;
class Solution{
public int solution(int[] arr){
	//int[] arr = {1,2,5,3,4}
    //내림차순으로 바꾸기
    Collections.sort(arr, Collection.reverseOrder());
    //{5,4,3,2,1}
    //오름차순으로 바꾸기
    Arrays.sort(arr); //{1,2,3,4,5}
    }

 

위의 코드와 같이 Collections을 이용한다!


이번주에는 연습 코딩테스트 모두 진행하였다.

둘째날까지는 정말 코드 구현이 쉽지 않았지만

세번째 날부터는 그래도 코드 구현이 가능해 코드를 구현했을 때의 뿌듯함을 드디어 느낄 수 있었다.

코딩테스트를 진행하면서,

자료구조의 구현보다는 자료구조의 개념을 먼저 잘 이해하는 것이 더 중요함을 깨달았다.

(아직, 알고리즘은 강의를 다 듣지 못해 중요성 인지가 되지 않는다..!)

이번 주 아쉬운 점은 공부시간이 충족되지 않았다는 점이다.

하지만, 코드의 구현을 시작했다는 점에서는 지난 주보다 발전했다.

다음 주에는 알고리즘 강의를 듣고 정리하며,

알고리즘 구현보다는 개념을 먼저 숙지하는 것을 목표로 한다.