전체 글 199

[99클럽 코테 스터디] 📝 Day6. 꾸준함2

99클럽 코테 스터디 6일차 TIL + 힙(Heap) 📍오늘의 학습 키워드힙(Heap) 자료구조이중 우선순위 큐 구현PriorityQueue 사용법Comparator 인터페이스📝 공부한 내용 본인의 언어로 정리하기오늘은 주어진 명령어를 효율적으로 처리할 수 있는 자료구조로 힙(Heap)을 사용하는 방법에 대해 배웠다. 이중 우선순위 큐 문제를 해결하기 위해 최댓값과 최솟값을 빠르게 찾고 삭제할 수 있는 힙 자료구조를 선택했다. 또한, Java에서 PriorityQueue와 Comparator를 활용해 우선순위 큐를 구현하는 방법도 공부했다.📖  오늘의 회고📚 어떤 문제가 있었고, 나는 어떤 시도를 했는지이중 우선순위 큐 문제를 해결하면서 최댓값과 최솟값을 효율적으로 처리하는 방법에 대한 고민이 있..

[99클럽 코테 스터디] 📝 Day5. 꾸준하게

99클럽 코테 스터디 5일차 TIL + 힙(Heap) 📍오늘의 학습 키워드Heap 📝 공부한 내용 본인의 언어로 정리하기 📖  오늘의 회고오늘은 디스크 컨트롤러 문제를 해결하는 과정에서 자료구조인 힙(Heap)을 활용하는 방법에 대해 공부했습니다. 문제를 해결하기 위해 우선순위 큐를 사용하여 작업의 소요 시간을 기준으로 작업을 처리하려 했습니다. 또한, Arrays.sort와 Comparator를 이용한 정렬 방법에 대해서도 고민해 보았습니다.📚 어떤 문제가 있었고, 나는 어떤 시도를 했는지🤔 어떻게 해결했는지🔖 문제 해결 링크 (https://develop-tracking.tistory.com/53)작업을 요청 시간 순서로 정렬하기 위해 Arrays.sort(jobs, (a, b) -> a[..

[프로그래머스][JAVA] 디스크 컨트롤러

💡 문제챌린저: 디스크 컨트롤러 (https://school.programmers.co.kr/learn/courses/30/lessons/42627)자세한 문제 설명과 입출력 예는 링크를 참고해주세요. 📝 선행 개념힙(Heap) 이란힙(Heap)은 완전 이진 트리의 일종으로, 특정한 조건을 만족하는 자료구조입니다. 힙은 다음 두 가지 유형이 있습니다최대 힙(Max Heap): 부모 노드의 값이 항상 자식 노드의 값보다 크거나 같은 힙. 따라서 루트 노드의 값이 가장 큽니다.최소 힙(Min Heap): 부모 노드의 값이 항상 자식 노드의 값보다 작거나 같은 힙. 따라서 루트 노드의 값이 가장 작습니다.힙의 특성 덕분에 힙은 우선순위 큐(Priority Queue)를 구현하는 데 사용됩니다. 우선순위 큐..

[프로그래머스][JAVA] 주식 가격

💡 문제 주식 가격 (https://school.programmers.co.kr/learn/courses/30/lessons/42584)자세한 문제 설명과 입출력 예는 링크를 참고해주세요.📝 선행 개념스택(Stack)은 프로그래밍에서 자주 사용되는 기본 자료구조 중 하나입니다. 스택은 LIFO(Last In, First Out) 원칙을 따릅니다. 즉, 마지막에 삽입된 요소가 가장 먼저 삭제되는 구조입니다. 스택은 다음과 같은 두 가지 주요 연산을 제공합니다스택의 기본 동작push: 스택의 맨 위에 요소를 추가하는 연산pop: 스택의 맨 위에 있는 요소를 제거하고 반환하는 연산peek: 스택의 맨 위에 있는 요소를 제거하지 않고 반환하는 연산isEmpty: 스택이 비어 있는지 확인하는 연산size: 스..

[프로그래머스][JAVA] 다리를 지나는 트럭

💡 문제 다리를 지나는 트럭 (https://school.programmers.co.kr/learn/courses/30/lessons/42583) 자세한 문제 설명과 입출력 예는 링크를 참고해주세요.📝 선행 개념큐(Queue)는 컴퓨터 과학에서 사용하는 자료 구조 중 하나로, 먼저 들어온 데이터가 먼저 나가는 FIFO(First In First Out) 원칙을 따릅니다. 큐는 일상생활에서 줄을 서서 차례를 기다리는 상황을 생각하면 이해하기 쉽습니다. 예를 들어, 사람들은 줄의 맨 앞에서 차례를 기다리며, 새로 온 사람들은 줄의 맨 뒤에 서게 됩니다.큐의 기본 동작삽입(Enqueue): 요소를 큐의 뒤쪽에 추가합니다.삭제(Dequeue): 요소를 큐의 앞쪽에서 제거합니다.확인(Peek or Front)..

[99클럽 코테 스터디] 📝 Day4. 회사… 힘들다.. 하지만..

(부제:포기하지 않고 앞으로 나아가기)99클럽 코테 스터디 4일차 TIL + 스택📍오늘의 학습 키워드스택📝 공부한 내용 본인의 언어로 정리하기주요 개념!스택이란스택(Stack)은 프로그래밍에서 자주 사용되는 기본 자료구조 중 하나입니다. 스택은 LIFO(Last In, First Out) 원칙을 따릅니다. 즉, 마지막에 삽입된 요소가 가장 먼저 삭제되는 구조입니다. 스택은 다음과 같은 두 가지 주요 연산을 제공합니다📖 오늘의 회고📚 어떤 문제가 있었고, 나는 어떤 시도를 했는지문제에 대해서 설명만 기재해보도록 하겠다.이 문제는 주식 가격이 기록된 배열에서 각 시점별로 주식 가격이 떨어지지 않은 기간을 계산하는 것입니다. 문제를 해결하기 위한 접근 방법과 이를 스택을 사용해 해결해야 하는 이유를 ..

[99클럽 코테 스터디] 📝 Day3. 바쁜 일상속 노력

99클럽 코테 스터디 3일차 TIL + 스택/큐📍오늘의 학습 키워드스택/큐📝 공부한 내용 본인의 언어로 정리하기주요 개념!큐(Queue)는 컴퓨터 과학에서 사용하는 자료 구조 중 하나로, 먼저 들어온 데이터가 먼저 나가는 FIFO(First In First Out) 원칙을 따릅니다. 큐는 일상생활에서 줄을 서서 차례를 기다리는 상황을 생각하면 이해하기 쉽습니다. 예를 들어, 사람들은 줄의 맨 앞에서 차례를 기다리며, 새로 온 사람들은 줄의 맨 뒤에 서게 됩니다.📖 오늘의 회고📚 어떤 문제가 있었고, 나는 어떤 시도를 했는지큐를 사용하여 풀이를 하는게 보여서 어려움은 없었지만 내가 어떻게 문제를 접근했는지 간단하게 작성해봤다. 이 문제는 트럭들이 다리를 건너는 과정을 특정 조건을 만족하면서 최소 ..

[백준][JAVA] 비슷한 단어

💡 문제 비슷한 단어 (https://www.acmicpc.net/problem/2179)자세한 문제 설명과 입출력 예는 링크를 참고해주세요.📝 선행 개념주어진 문제를 해결하기 위해 다양한 자료 구조와 알고리즘을 사용할 수 있다.해당 문제에서는 해시맵(HashMap)과 배열을 사용하여 문제를 해결하였으며 아래는 해당 문제를 해결하는 데 사용된 자료 구조와 알고리즘에 대한 설명입니다. 자료 구조해시맵 (HashMap): 단어를 키로, 해당 단어의 입력 순서를 값으로 저장합니다. 이를 통해 단어의 입력 순서를 기억할 수 있습니다.배열 : 입력된 단어들을 저장합니다. 이를 통해 단어 쌍을 비교할 수 있습니다.알고리즘문자열 비교:각 단어 쌍에 대해 최대 접두사 길이를 계산합니다.이중 반복문 (Nested L..

[프로그래머스][JAVA] 베스트앨범

💡 문제베스트앨범 (https://school.programmers.co.kr/learn/courses/30/lessons/42579)자세한 문제 설명과 입출력 예는 링크를 참고해주세요. 📝 선행 개념1. Comparable 인터페이스public interface Comparable { public int compareTo(T o);}이 메서드는 현재 객체와 지정된 객체를 비교하여 다음과 같은 값을 반환해야 합니다2. Collections.sortCollections.sort 메서드는 Java의 Collections 클래스에 정의된 정적 메서드로, 리스트를 정렬할 때 사용됩니다. Comparable 인터페이스를 구현한 객체들의 리스트를 정렬할 때 유용합니다.List songs = new Arra..

[99클럽 코테 스터디] 📝 Day2. 꾸준함

99클럽 코테 스터디 2일차 TIL + Hash📍오늘의 학습 키워드자료 구조, 문자열, 정렬, 해시를 사용한 집합과 맵 📝 공부한 내용 본인의 언어로 정리하기자료구조 Hash란해시 자료 구조는 데이터의 빠른 검색, 삽입, 삭제를 위해 사용되는 데이터 구조입니다. 해시 테이블(Hash Table)이라고도 불리며, 키-값 쌍을 저장하는 데 사용됩니다. 해시 자료 구조의 핵심 개념은 해시 함수(Hash Function)입니다. 해시 함수는 임의의 크기를 가지는 데이터를 고정된 크기의 값으로 매핑하는 함수입니다.주요 개념!해시 함수 (Hash Function):입력 데이터를 받아서 해시 코드를 생성합니다. 이 해시 코드는 데이터의 인덱스로 사용되어 해시 테이블에서 해당 데이터를 빠르게 찾을 수 있게 합니다...

[99클럽 코테 스터디] 📝 Day1. OT

99클럽 코테 스터디 1일차 TIL + Hash📍오늘의 학습 키워드Hash 📝 공부한 내용 본인의 언어로 정리하기Comparable 인터페이스는 Java에서 객체의 자연 순서를 정의하기 위해 사용하는 표준 인터페이스입니다.이 인터페이스를 구현하는 클래스는 compareTo 메서드를 통해 두 객체의 비교 방법을 정의합니다. 이로 인해 해당 클래스의 객체들이 자연스럽게 정렬될 수 있습니다.* Comparable 인터페이스Comparable 인터페이스는 java.lang 패키지에 포함되어 있습니다. 이 인터페이스는 단일 메서드 compareTo를 제공합니다.public interface Comparable { public int compareTo(T o);} 이 메서드는 현재 객체와 지정된 객체를 비..

[Algorithm] 수학리부트 - 논리의 기초

논리의 기초컴퓨터 프로그램도 0과 1을 계산하는 회로들이 복잡하게 ㅇ얽혀 결과를 내어놓는 논리 기계의 일종이라 할 수 있다. 프로그램을 한 줄 작성할 때마다 우리는 이미 명제나 집합에 관련된 수학을 계산하고 있는 셈이다. 수학의 토대인 논리의 기초를 공부해본다. 명제와 논리연산명제란 참인지 거짓인지 판별할 수 있는 문장이나 수식을 말한다. 다음은 참인지 거짓인지를 판별할 수 있으므로 명제다.달은 지구의 위성이다. (참 명제)고래는 어류다. (거짓 명제)다음은 참인지 거짓인지 판별할 수 없으므로 명제가 아니다.수학은 어렵다. ('어렵다'는 것은 주관적인 개념)x² - x - 1 = 0 (x값이 정해지지 않았으므로)명제는 대게 p, q, r 같은 영문자로 표시된다. 명제의 참과거짓을 그 명제의 진리값이라 하..

[Algorithm] 수학 리부트를 들어가기 앞서서...

나는 문과이다. 내가 수학이 필요하다고 느껴져서 수학을 다시 공부하기 시작했다. 직업마다 다르지만 개발자를 하기 위해서는 기본적인 건 알고 있어야 한다고 생각한다. 1. 수학적 지식이 있으면 작성된 프로그램의 품질과 성능이 확연하게 차이가 난다. 2. 알고리즘은 수학을 기반으로 한다. 3. 정보처리기사 자격증 실기도 수학을 기본 지식으로 알고 있어야 공부가 가능하다. 4. 복잡한 도형 및 교점을 찾고 찾기 위해서는 거리 공식을 알아야 한다. 5. 알고리즘도 많이 알아야 하는데 수학적 지식이 부족하다고 느껴졌다. 위 다섯 가지 이유들이 생겨나면서 처음에는 불필요하다고 생각했지만 점점 문제와 한계가 느껴지면서 필요성을 느끼게 되었다 그래서 개발자에게는 수학을 꾸준히 공부하는 게 필요하다고 느끼게 되었다. 여..

[이지스퍼블리싱] Do it! 알고리즘 코딩테스트 자바편

[Do it! 알고리즘 코딩 테스트 - 자바 편] 코딩 테스트를 볼 때 평소에 문제를 풀어본 경험이 있어도 막상 실전에서 콱.. 막히는 경험이 있었다. 그래서 최근 다시 알고리즘 스터디를 통해서 알고리즘 문제를 풀고는 있었지만 기본기가 부족한 상태에서 꾸역꾸역 문제를 풀다 보니 뭔가... 쉬운 문제만 풀게 되는 것과.. 구글 검색을 통해서 막히는 문제를 해결하니 온전한 내 실력이 아닌 것 같았다. 사실 기존에 [Do it! 자료구조와 함께 배우는 알고리즘 입문 자바 편] 책으로 기본 개념에 대해서 또 자료구조에 대해서 많이 얻고 알게 되었어서 찾아봤지만..ㅠㅠ 좋아하는 이지스퍼블리싱에서 자바 편 알고리즘 책이 더 없어서 아쉬웠었는데..! 이번에 Do it! 알고리즘 코딩 테스트 자바 편으로 새로운~ 책을..

도서/알고리즘 2022.04.15

React- 리액트 교과서 5장 React 컴포넌트 라이프사이클 이벤트

목차 React 컴포넌트 라이프사이클 이벤트 한눈에 살펴보기 이벤트 분류 이벤트 구현 모든 이벤트 실행하기 마운팅 이벤트 componentWillMount() componentDidMount() 갱신 이벤트 componentWillReceiveProps(newProps) shouldComponentUpdate() componentWillUpdate() componentDidUpdate() 언마운팅 이벤트 componentWillUnmount() React 컴포넌트 라이프사이클 이벤트 한눈에 살펴보기 React는 라이프사이클 이벤트를 기반으로 컴포넌트의 동작을 제어하고 사용자 정의를 할 수 있다. 마운팅 이벤트 : React 엘리먼트(컴포넌트 클래스의 인스턴스)를 DOM 노드에 추가 할 때 발생한다. 갱신..

React- 리액트 교과서 4장 React 컴포넌트의 상태 객체

3장 까지만 볼려고 했는데 4장을 펼치는 순간! 만약 이 책에서 한 개 장밖에 읽을 수 없다면, 이 장을 읽기 바란다! 라고 하길래 본다 createElement() 나 JSX 을 이용해 컴포넌트를 다시 생성하지 않고, 사용자 조작으로 발생한 이벤트를 처리하여 뷰를 갱신해야 한다. 상태 객체를 이용하면 이런 문제를 해결할 수 있다. React 컴포넌트의 상태 객체를 이용하면 가치 있고 상호작용이 뛰어난 React 애플리케이션을 만들 수 있다. 상태는 React 컴포넌트에 데이터를 저장학, 데이터의 변경에 따라 자동으로 뷰를 갱신하도록 하는 핵심 개념이다. React 컴포넌트의 상태란? React의 상태(state)는 컴포넌트의 변경 가능한 데이터 저장소다. 독립적이면서 기능 중심의 UI와 논리의 블록이다..

React- 리액트 교과서 3장 JSX

기억해야 할 주제 - JSX의 이해와 이점 - Babel을 이용한 JSX 변환 설정 - React와 JSX의 까다로운 부분 JSX의 정의와 장점 JSX는 함수 호출과 객체 생성을 위한 문법적 편의를 제공하는 자바스크립트의 확장으로, 특히 React.createElement() 호출을 반복해야 하는 불편을 해소한다. 템플릿 엔진이나 HTML처럼 보일 수도 있지만 그렇지 않다. JSX는 React 엘리먼트를 생성하면서 자바스크립트의 모든 기능을 쓸 수 잇도록 도와준다. JSX 장점 개발자 경험(developer experience. DX) 개선 : 표현력이 뛰어나 코드를 읽기 쉽다. XML과 문법이 유사하여 중첩된 선언형 구조를 더 잘 나타낸다. 팀의 생산성 향상 : 전문 개발자 외에도 개발 지식이 있는 팀..

React- 리액트 교과서 2장 리액트 첫걸음

엘리먼트 중첩계층적 방식으로 더 복잡한 구조를 만드는 방법은 엘리먼트를 중첩하는 것이다.또는을 컨테이너로 사용하는 것이 일반적으로 좋은 선택이다. createElement()에 전달하는 매개변수의 수는 제한이 없다. 두 번째 매개변수 이후의 모든 매개변수는 자식 엘리먼트가 된다. React 개발자 도구에서 확인해보면 두 엘리먼트가 같은 계층에 위치한다. 문자열로 작성한 일반적인 HTML태그, 예를 들면 'h1', 'div', 'p'처럼 화살괄호가 없는 문자열이다. 이름은 소문자로 작성한다.React 컴포넌트 클래스 객체. HelloWorld를 예로 들 수 있다. React 컴포넌트 클래스의 이름은 대문자로 시작한다. React는 표준 HTML 요소를 탐색해서 일치하는 것이 있으면 해당 React 엘..

React 란 무엇인가.

더보기React는 강력한 UI 라이브러리다. 페이스북, 넷플릭스, 에어비앤비 같은 유명 기업들도 React를 기반으로 성공을 거두었다. 자바스크립트로 만든 React 컴포넌트는 웹 사이트 어디서든 UI를 재사용할 수 있다. React란? React는 UI 컴포넌트 라이브러리다. React UI 컴포넌트는 다른 특별한 템플릿 언어가 아닌 자바스크립트를 이용해서 만든다. 여러 컴포넌트로 UI를 구성하는 이런 방식은 React의 핵심 철학이다. React UI 컴포넌트는 매우 독립적이며 특정 관심사에 집중된 기능 블록이다. 예시로 날짜선택기, 캡차, 주소, 우편번호 요소를 위한 컴포넌트가 있을 때 이런 컴포넌트는 시각적 표현과 동작을 구현하는 논리를 모두 담고 있다. 또 다른 컴포넌트는 서버와 직접 통신하기도..