스택스택의 어원은 'stack' , '쌓는다' 이다. 스택은 어원에서 짐작할 수 있듯이 먼저 입력한 데이터를 가장 나중에 꺼낼 수 있는 자료구조 이다. 이때 스택에 삽입하는 연산을 푸시 push , 꺼내는 연산을 팝 pop 이라고 한다. ADT : acstract data type추상 자료형이란 인터페이스만 있고 실제로 구현은 되지 않은 자료형이다. 일종의 자료형의 설계도. 그렇다면 스택은 어떤 정의가 필요한 자료구조일까? 언어에 따라 표준 라이브러이에서 스택 제공 여부는 다르다. 파이썬의 경우 스택을 제공하진 않지만 대안으로 리스트 메서드인 'append():가장 마지막에 원소를 넣음' 로 스택을 대체할 수 있다. 덱(deque)은 한쪽으로만 데이터 삽입, 삭제할 수 있는 스택과 다르게 양쪽에서 데이..
자바에서 접근 제어자는 클래스, 메서드, 변수의 접근 범위를 설정하는 데 사용된다. 접근 제어자는 주로 캡슐화를 통해 데이터 보호와 코드의 구조화된 관리를 돕는다. 자바에는 네 가지 주요 접근 제어자가 있다: public, protected, default(package-private), private이다.1. Publicpublic 접근 제어자는 해당 요소가 모든 클래스에서 접근 가능하다는 것을 의미한다. 다른 패키지에 있는 클래스에서도 접근할 수 있으므로, 공용 API나 라이브러리를 만들 때 유용하다.public class Example { public int value; public void display() { System.out.println("Value: " + valu..
기본 배열 질문파이썬에서 리스트의 장점 및 단점에 대해 말해주세요. 단점이 있다면 이를 해결할 수 있는 방법은 무엇이 있을까요? 장점 : 리스트는 한 개의 리스트에 혼합하여 다양한 자료구조를 포함할 수 있으며 확장이 쉽다. 또한 숫자나 문자열 등의 변수를 선언하지 않고도 간단하게 표현할 수 있다. 단점 : 파이썬에서는 리스트도 객체에 해당하기 때문에 복사를 하게되면 바로보는 객체가 동일하기 때문에 두 개의 리스트 중 하나만 변경해도 나머지 하나가 동일하게 수정되는 현상이 발생한다.예를 들어 a라는 변수를 선언하고 리스트를 만들어 a에 할당하면 리스트 객체의 주소가 저장된 변수가 된다. 그럼 a라는 변수의 값을 b 인자에 할당하였을 경우, b는 a와 같은 객체의 주소가 저장된 변수가 된다. 따라서 b를 불..
배열 배열은 인덱스와 값을 일대일 대응해 관리하는 자료구조 이다. 데이터를 저장할 수 있는 모든 공간은 인덱스와 일대일 대응하므로 어떤 위치에 있는 데이터든 한 번에 접근할 수 있다. 배열 선언일반적인 방법 arr = [0, 0, 0, 0, 0, 0] arr = [0] * 6 리스트 생성자 사용arr = list(range(6)) #[0,1,2,3,4,5] 리스트 컴프리헨션을 활용하는 방법arr = [0 for _ in range(6)] # [0, 0, 0, 0, 0, 0] 배열과 차원배열은 2차원, 3차원 배열과 같이 다차원 배열을 사용할 때도 많다. 하지만 컴퓨터 메모리의 구조는 1차원이므로, 2차원, 3차원 배열도 실제로는 1차원 공간에 저장한다. 다시 말해 배열은 차원과는 무관하게 메모리..