목록분류 전체보기 (53)
Kim ByeungHyun

데일리 과제 3/27 객체지향 프로그래밍(OOP)에 대해 설명해주세요. 알고 있는 원칙이나 키워드를 언급해주세요 객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍의 패러다임 중 하나로, 객체(Object)들의 상호작용을 중심으로 프로그래밍하는 방법입니다. 객체란 데이터와 해당 데이터를 처리하는 함수(메서드)를 포함한 하나의 개체를 말합니다. 이러한 객체들은 클래스(Class)라는 틀을 기반으로 만들어집니다. 클래스는 객체의 특징이나 속성을 정의하고, 객체 수행 할 수 있는 행동들(메서드)을 포함합니다. OOP의 기본적인 특징 캡슐화(Encapsulation) : 객체의 상태와 행동을 하나로 묶고, 외부에서 직접 접근하지 못하도록 정보를 은닉합니다. 상속..

서론 알고리즘 스터디를 진행하는데 팀 repository를 하나 만들고 fork한뒤에 PR하는 방식으로 깃허브를 사용하고 있다. 매번 포크해서 매번 clone 할 순 없기에 최신화 상태를 유지하기 위해 동기화를 하려함. 환경 윈도우 git bash에서 진행 세팅 1. fork 받아오고자 하는 repository에서 fork를 받아옴 2. fork 해온 repository로 이동하여 clone 하기 위해 해당 repository의 주소를 복사함 3. 이후 본인이 저장하고자 하는 local 폴더 위치로 이동하여 clone작업을 진행한다. 진행 git remote -v 위와 같이 해당 프로젝트 폴더위치에서 git remote -v를 진행하면 현재 fork 해온 repository가 확인 됨. git remot..

코딩테스트 연습 - 더 맵게 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr -> heap(힙) 문제다 우선 순위 큐를 사용하면 쉽게 풀 수 있었다. 힙? 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이진 트리 PriorityQueue 선언 import java.util.PriorityQueue; //오름차순(default) PriorityQueue 선언 PriorityQueue priorityQueue = new PriorityQueue(); //내림차순 PriorityQueue 선언..

https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 - 정해진 순서대로만 배포가 가능하기 때문에 현재 기능이 완료됐다고 하더라도 앞의 기능이 완료되지 않으면 배포가 불가능하다. 그렇기에 입력 순서대로 반환하는 Queue를 사용 했다. - 기능구현이 완료되는 시간을 구해 Queue에 순차적으로 넣기 위해 값을 계산 했다. 그런데 이렇게 하니 테스트 11에서 실패를 한다. - 소수점자리까지 구해야한다. 만약 5.5와 같이 소수점이 나오게 되면 실..

교차 오리진 리소스 공유(CORS) 사용 CORS(Cross-origin 리소스 공유)는 한 도메인에서 로드되어 다른 도메인에 있는 리소스와 상호 작용하는 클라이언트 웹 애플리케이션에 대한 방법을 정의합니다. CORS 지원을 통해 Amazon S3으로 다양한 기능의 클라이언트 측 웹 애플리케이션을 구축하고, Amazon S3 리소스에 대한 Cross-Origin 액세스를 선택적으로 허용할 수 있습니다. 이 섹션에서는 CORS 개요를 다룹니다. 하위 섹션에서는 Amazon S3 콘솔을 사용하거나 프로그래밍 방식으로 Amazon S3 REST API 및 AWS SDK를 사용하여 CORS를 사용하는 방법을 설명합니다. 문제발생 프로젝트를 진행하다보다니, 클라이언트 측에서 cors문제로 정상적으로 파일이 안 올..

해싱, 해시함수, 해시테이블 데이터를 효율적으로 관리하기 위해, 임의의 길이 데이터를 고정된 길이의 데이터로 매핑 하는 것 해시 함수를 구현하여 데이터 값을 해시 값으로 매핑한다. 이 때 매핑 전 원래 데이터의 값을 키(Key), 매핑 후 데이터의 값을 해시값(hash value), 매핑하는 과정 자체를 **해싱(hashing)**이라고 합니다. collision 현상 (해시충돌) 데이터가 많아지면서, 다른 데이터가 같은 해시 값으로 충돌나는 현상 → 그래도 해시 테이블을 쓴다 왜? : 적은 자원으로 많은 데이터를 효율적으로 관리하기 위해 하드디스크나, 클라우드에 존재하는 무한한 데이터들을 유한한 개수의 해시 값으로 매핑하면 작은 메모리로도 프로세스 관리가 가능해짐. 장점 언제나 동일한 해시값 리턴, i..

복잡한 문제를 간단한 여러개의 문제로 나누어 푸는 방법 흔히 말하는 DP가 바로 ‘동적 계획법’ → 한가지 문제에 대해서, 단 한 번만 풀도록 만들어주는 알고리즘 즉, 똑같은 연산을 반복하지 않도록 만들어줌. 실행 시간을 줄이기 위해 많이 이용되는 수학적 접근 방식의 알고리즘이라고 할 수 있다. 동적 계획법은 Optimal Substructure에서 효과를 발휘한다. → Optimal Substructure : 답을 구하기 위해 이미 했던 똑같은 계산을 계속 반복하는 문제 구조 접근 방식 커다란 문제를 쉽게 해결하기 위해 작게 쪼개서 해결하는 방법인 분할 정복과 매우 유사하다. 하지만 간단한 문제로 만드는 과정에서 중복 여부에 대한 차이점이 존재한다. 즉, 동적 계획법은 간단한 작은 문제들 속에서 ‘계속..
최장 증가 수열 문제는 동적 계획법으로 풀 수 있는 유명한 알고리즘 문제이다. 정의 어떤 임의의 수열이 주어질 때, 이 수열에서 몇 개의 수들을 제거해서 부분수열을 만들 수 있다. 이때 만들어진 부분수열 중 오름차순으로 정렬된 가장 긴 수열을 말한다. 예시 3 5 7 9 2 1 4 8 에서 몇 개의 수를 제거해 부분수열로 만들어보자 3 7 9 1 4 8 (5, 2 제거) → 일부가 오름차순으로 정렬 7 9 1 8 (3, 5, 2, 4 제거) → 일부가 오름차순으로 정렬 3 5 7 8 (9, 2, 1, 4 제거) → 전체가 오름차순으로 정렬 (LIS) 1 4 8 (3, 5 , 7, 9 , 2 제거) → 전체가 오름차순으로 정렬 → 증가 부분 수열 → 이 중 가장 긴 증가하는 부분 수열을 ‘최장 증가 수열(..