전체 글

백엔드 개발자 토발자입니다.
· Java
이전 글에 이어서 이번 글에서는 접근 제어자에 대해 정리해보고자 한다. 접근제어자(access modifier) 멤버변수 또는 클래스에 사용되며 해당하는 멤버변수 또는 클래스를 외부에서 접근하지 못하도록 제한하는 역할을 한다. 클래스나 멤버변수, 메서드, 생성자에 접근 제어자가 지정되어 있지 않다면 default임을 의미한다. 종류 접근 제어자 같은 클래스 같은 패키지 자손 클래스 전체 private O X X X default O O X X protected O O O X public O O O O 그렇다면 접근 제어자를 사용하는 이유는 무엇일까? 이유에는 크게 2가지가 있다. 외부로부터 데이터를 보호하기 위해 외부에는 불필요하고, 내부적으로만 사용되는 부분을 감추기 위해 이것을 데이터 감추기(data..
· Java
매일 public과 private 제어자를 사용해 클래스나 메서드를 선언하는데, 이 둘을 주로 사용하다보니 다른 접근 제어자인 protected, default가 헷갈리기 시작해 정리하는 글이다. 이왕 정리하는 김에 접근 제어자 뿐만 아니라 그 외의 제어자에 대해서도 간략히 정리해보고자 한다. 제어자(modifier)란? 클래스, 변수 또는 메서드의 선언부에 사용돼 부가적인 의미를 부여한다. 종류 접근 제어자 : public, protected, default, private 그 외 제어자 : static, final, abstract, native, transient, synchronized, volatile, strictfp 하나의 클래스나 멤버변수, 메서드 등의 대상에 대해서 여러 제어자를 조합해 ..
기초 자료구조인 Stack에 대해서 알고 있다면 어렵지는 않은 문제이다.. 하지만 시간 초과가 떴고.. 검색해보니 명령 N 이 최대 10,000이고 명령마다 println으로 출력 시 시간 초과가 발생할 수 있으므로 StringBufferr를 사용해주면 해결된다고 한다. 시간 초과 import java.io.*; import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Stack stack = new Stack(); int num = sc.nextInt(); for(int i = 0; i < num; i++) { String order = sc.next..
Stack 기본 개념 LIFO(Last In First Out) 형식의 기초 자료구조 아래 그림처럼 한 쪽 끝에서만 데이터를 넣고 뺄 수 있다. 이러한 구조는 '뒤로 가기'나 '실행 취소(undo)', 컴퓨터 구조에서의 'stack memory'에서 사용된다. 구조 상 당연히 직전에 추가된 데이터를 빠르게 가지고 올 수 있다. 기본적으로 Java에서 Stack 클래스는 내부에서 최상위 타입 배열인 Object[] 배열을 사용해 데이터들을 관리하고 있다. Stack 기본 연산 push(item): item 하나를 스택의 가장 윗 부분에 추가한다. pop(): 스택에서 가장 위에 있는 항목을 제거한다. peek(): 스택의 가장 위에 있는 항목을 반환한다. isEmpty(): 스택이 비어 있을 때에 true..
자료구조(Data Structure). 구글링을 하면 '데이터 값의 모임, 또 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령을 의미'한다는 위키백과의 글이 가장 먼저 검색된다. 그리고 자료구조를 검색하면 알고리즘 문제를 푸는 분들이 많다. 자료구조와 알고리즘은 뗄 수 없는 관계이기 때문이다. 어떤 알고리즘 문제를 해결하기 위해서는 문제를 파악한 다음 문제에 사용할 적합한 자료구조를 선택한다. 예를 들어 비슷해보이는 List일지라도 순서가 있는 데이터들의 삽입과 삭제가 빈번하다면 LinkedList를, 그렇지 않을 경우네는 ArrayList를 사용한다. 각 알고리즘의 문제에서, 그리고 실제 서비스 로직을 구현하는 상황에서도 각 자료구조 별 특징을 정확하게 이해하고 있어야 적합한 자료구조를..
토발자_Hflug
내가 개발자라니