이카's
반응형
article thumbnail
자료구조 - Queue(feat. Java, Python)
SW/자료구조 2023. 6. 1. 03:22

큐(Queue)란? 큐는 배열을 기반으로 만든 자료구조이다. 가장 먼저 넣은 요소를 가장 먼저 꺼낼 수 있다는 것이 특징이다. 예시로 터널에 들어간 차량, 음식점 줄서기 등이 있다. 개인적으로 자료구조에서 인간적으로 합당하다고 생각하는 구조이다... 들어가기에 앞서 큐에서 자주 사용하는 용어 2개를 소개한다. Enqueue : 큐에 요소 넣는 기능 Dequeue : 큐에 요소 꺼내는 기능 특징 몇가지 특징을 짧게 알아보자 FIFO : First input First out 의 약자로 선입선출 이라고 많이 말한다. 큐의 가장 큰 특징이자 중요한 개념이다. 큐는 꼬리 쪽으로만 요소가 들어가고 헤드 쪽으로만 요소가 나가게 된다. 컴퓨터 버퍼에서 주로 사용한다. Python Queue 파이썬에서는 큐는 내부구현..

article thumbnail
자료구조 - 배열 (feat. Java, Python), 자매품 - Java Collection ArrayList
SW/자료구조 2023. 6. 1. 02:30

배열이란? 배열을 왜 쓸까? 같은 종류의 데이터를 관리하기 하기 위해서 같은 종류의 데이터를 순차적으로 저장 대전제는 데이터를 쉽게 관리하는 목적이다. 그것을 한 묶음으로 관리하는게 효율적이다. 근데 이걸 또 순차적으로 있다면? 한눈에 봐도 데이터를 다루기가 쉬울 것이다. 장점 - Index 배열의 가장 큰 장점은 Index라고 할 수 있다. 배열는 공간에 각각의 element 마다 각각의 index가 생긴다. (각각각각) 각 요소에 번호가 생기면 데이터 안에 하나의 값만 가져올 때 굉장히 편해진다. 또한 값을 찾을 때 소모되는 비용은 index로 인해 시간복잡도 O(1)을 가진다. 단점 - 배열의 크기설정 & 추가/삭제 배열의 가장 큰 단점 데이터를 삭제와 추가 하는 부분에서 발생한다. 배열은 크기를 ..

article thumbnail
디자인 패턴 & 패러다임 모음 - Java
Language/Java 2023. 5. 30. 06:38

디자인 패턴 & 패러다임 자바를 공부하는 중 가장 많이 접하는 단어는 객체지향과 디자인패턴 일 것이다. 자바를 한번은 훑은 시점에서 저 두 단어에 대한 느낌은 사실 아직도 잘 모르겠다. 그럼에도 불구하고 두 개념은 자바에 있어서 아주 중요한 개념이라는 것은 모두가 알 기에 우리는 추상적인 개념의 두 단어를 반드시 공부해야한다. 이번 포스팅에 다뤄볼 것은 패턴의 패러다임이다. 거창하게 할 필요는 없고 가볍게 종류를 알아보고, 쉽게 이해하는 비유를 들까 한다. 디자인 패턴 사실 패턴은 게임을 조금 하는 사람들한테는 익숙하다. 큰 보상을 위해 레이드를 한다. 하지만 무작정 보스를 때리는 것만으로 던전을 클리어 할 수 없다. 탱커, 힐러, 딜러가 보스의 패턴을 알고 해결책을 내야지 끝내 레이드를 성공할 수 있다..

article thumbnail
옵저버 패턴(Observer) - Java
Language/Java 2023. 5. 30. 06:34

옵저버 패턴(Observer) 옵저버 패턴은 객체의 상태를 관찰하고 상태변화가 있을 경우 알림을 받는 것을 말한다. 판매자가 하나 있다면, 이를 여러명의 옵저버가 보고 있으며 판매자가 어떤 행동을 하여 상태의 변화가 있다면 이를 옵저버가 알림을 해주는 것이다. 예로 들자면 집을 구하고자 하는 사람이 공인중개사에 매번 집 매물을 보러 가는게 아닌, 공인중개사에서 매물이 나오는 걸 체크하고 있다가 매물이 나오면 구매자한테 알려주는 방법이 옵저버 패턴이다. 옵저버 패턴은? 행동 패턴으로 어떤 이벤트(행동)이 발생했을 때, 이를 감지하고 결과를 준다. 옵저버 패턴은 SOLID 원칙에 개방-폐쇄 원칙(Open Close Principle)을 따르고 있다. 새로운 옵저버가 작성되더라도 판매자는 바뀌는게 없기 때문이..

article thumbnail
전략 패턴(Strategy) - Java
Language/Java 2023. 5. 30. 04:34

전략 패턴(Strategy) 전략 패턴은 팩토리 패턴과 굉장히 유사하다. 다른점이 있다면, 지금 하는 행동을 다른 행동으로 바꿀 수 있다는 것이다. 이는 자바 Runtime에 결정된다. 팩토리 패턴과 상위 클래스를 하위 클래스가 상속 받는 방식이 유사하기 때문에 장점, 단점, 해결책 내용은 넘어간다. 간단히 구현 부분만 집고 넘어가겠다. 구현 먼저 interface로 구현한다. // 전략 패턴 interface PaymentStrategy { public void pay(int amount); } 어떤 상품을 구매할 때, KAKAOCard로 사는 것과, LUNACard로 사는 것을 구현다. class KAKAOCardStrategy implements PaymentStrategy { private Str..

article thumbnail
팩토리 패턴(Factory) - Java
Language/Java 2023. 5. 30. 04:04

팩토리 패턴(Factory) 일반적으로 하나의 클래스에 여러개를 만드는 패턴이다. 하지만 상위 클래스가 뼈대를 이루고 하위 클래스가 상새내용을 적는 부분에서 팩토리 패턴이라는 명칭이 붙여졌다. 팩토리 패턴? 팩토리 패턴은 생성 패턴으로 생성패턴에는 두 가지 중요한 점이 있다. 생성 패턴은 어떤 Class를 사용하는지 캡슐화를 한다. 인스턴스들의 결합, 생성에 대한 정보를 은닉한다. 즉, 생성 시점, 누가 사용하는지, 무엇이 생성되는지 등등 유연성을 가질 수 있다. 문제점 or 단점 코드양 증가 코드파악 난이도 증가 코드양 증가 싱글톤 패턴과 비교했을 때, interface를 구현하고, 아래 클래스에서 세부적인 내용을 구현하기 때문에 코드 양이 많아지는 단점이 있다. 코드파악 난이도 extends 하는 과..

article thumbnail
제 2회 코딩올나잇
개인공간 2023. 5. 10. 18:59

제 2회 코딩올나잇 내가 고담시티의 박쥐였나 싶다. 이러다 낮밤 바뀌는건 아닌가 싶어! 오늘 하는 이유는 토이프로젝트 구현 때문이다. 내일 까지 제출인데, 지금 절반도 못한 것 같다. 사실 속으로는 처절한 몸부림 중이지만, 겉으로는 아무렇지 않은척 하는 중이다! 목표 중요도에 따라 순서 작성 📓 토이프로젝트 이거 하나라도 끝내면 다행이다. 00시 상태 수면욕보다 성취욕이 더 큰 상태 How? 에러 잡는 중 NullPointerException 에러가 나는데, 어느 부분에서 나는지 모르겠다. 01시 상태 How? 에러 잡는 중 NullPointerException 에러가 나는데, Group 쪽에서 Parameter가 refresh 되지 않아 발생하는 에러 같다. 03시 상태 졸린지 모르는 상태에 왔다. H..

반응형