728x90

백엔드 개발자 공부 35

[자료구조] 스택(Stack) / 큐(Queue)

스택(Stack) - 쌓다, 쌓이다, 포개지다 - LIFO(Last In First Out) 혹은 FILO(First Out Last In)의 구조 (e.g. 프링글스) - 데이터를 한번에 하나씩만 넣고 뺄 수 있음 - 입력과 출력이 하나의 방향으로 이루어지는 제한적 접근 구조 - 데이터를 넣는 것을 'PUSH', 데이터를 꺼내는 것을 'POP'이라고 함 스택 메서드 - push() : 스택에 데이터 추가 - pop() : 가장 나중에 추가된 데이터를 스택에서 삭제하고, 삭제한 데이터 리턴 - size() : 스택에 추가된 데이터의 크기 - peek() : 스택에 가장 나중에 추가된 데이터 리턴 - show() : 현재 스택에 포함되어 있는 모든 데이터를 String 타입으로 변환하여 리턴 - clear..

[자료구조] Intro

자료구조 - 여러 데이터의 묶음을 저장하고, 사용 방법을 정의한 것 - 데이터를 사용하려는 목적에 따라 형태를 구분하고, 분류하여 사용함 - 데이터는 분석하고 정리하여 활용해야만 의미를 가질 수 있으며, 체계적으로 정리하여 저장해두고 필요에 따라 데이터의 특징을 잘 파악해 사용해야 함 자료구조의 종류와 구분 - 대부분의 자료구조는 특정한 상황의 문제를 해결하는 데 특화되어 있음 → 자료구조를 많이 알아둘 수록 상황에 적합한 자료구조를 빠르고 정확하게 적용하여 문제 해결 가능 - 알고리즘 테스트(코딩 테스트)를 위해서도 공부해야 함

[Java] JSON

JSON(JavaScript Object Notation) - 다른 프로그램과의 데이터 교환을 위해 만들어진 객체 형태의 포맷 - 데이터를 전송하기 위해선 수신자와 발신자가 같은 프로그램을 사용하거나, 문자열처럼 범용적으로 읽을 수 있어야 함 직렬화와 역직렬화 - 직렬화(serialize) : 객체를 JSON 형태로 변환 (e.g. ObjectMapper.writeValueAsString() 메서드) - 역직렬화(deserialize) : JSON을 객체 형태로 변환 (e.g. ObjectMapper.readValue() 메서드) cf. Jackson 라이브러리를 이용하여 Object를 JSON으로 변환하기 JSON과 자바스크립트 객체의 기본 규칙 - JSON : 모든 키와 문자열 값은 반드시 쌍따옴표(..

[Java] 재귀 함수

재귀(Recursion) - 원래의 자리로 되돌아가거나 되돌아옴 - 문제를 동일한 구조의 더 작은 문제로 나누고, 작은 문제를 해결함으로써 전체 문제를 해결하는 방법 - 알고리즘 문제의 많은 부분을 차지하며, 재귀를 사용하면 코드가 간결하고 이해하기 쉬워짐 재귀 함수 - 자기 자신을 호출하는 함수 - 문제를 점점 작은 단위로 쪼갤 수 있어야 하고, 재귀 호출이 종료되는 시점이 존재해야 사용 가능 재귀 함수를 사용하기 적합할 때 - 중첩된 반복문이 많거나 반복문의 중첩 횟수를 예측하기 어려운 경우 - 변수 사용을 줄여 프로그램 오류가 발생할 수 있는 가능성을 줄이는 경우 재귀함수의 장점 - 불필요한 반복문을 사용하지 않아 코드가 간결해지고 수정이 쉬워짐 - 반복문에 비해 많은 수의 변수를 사용할 필요 없음..

[Java] 배열

배열 - 동일한 타입의 값들을 하나의 묶음으로 묶은 자료 구조 - 요소(element) : 배열이 가진 각 값들 - 인덱스(index) : 배열의 각 요소가 부여받는 순번(0부터 시작) 배열의 차원 - 배열의 요소가 또 다른 배열인 경우 배열이 중첩된 정도 - 1차원 배열 : 배열의 중첩이 없는 경우 e.g. { 1, 2, 3, 4 } - 다차원 배열(2차원 배열, 3차원 배열, ...) : 배열이 중첩된 경우 e.g. { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } } 1차원 배열 - 배열 선언 // 배열을 가리킬 참조 변수 temperatureOfJuly 선언 double[] temperatureOfJuly; // 31개의 double형을 저장할 수 있는 배열을 생성하고, 배열 첫 번째 요..

728x90