본문 바로가기
반응형

전체 글67

[Java] 클래스 vs 객체 클래스 vs 객체 1. 클래스 분류 같은 특성(속성,기능)을 가진 여러 객체를 총칭하는 집합 2. 객체 실체 유일무이한 사물 3. 클래스 vs 객체 == 붕어빵틀 vs 붕어빵 ?? 흔히 클래스와 객체의 관계를 붕어빵틀과 붕어빵이라고 비유한다. 하지만, 이는 잘못된 비유이다. 붕어빵틀 붕어빵 = new 붕어빵틀(); 붕어빵틀로 붕어빵을 만들었는데, 타입이 붕어빵틀이다?? 붕어빵틀은 붕어빵에 대한 클래스가 아닌 팩토리클래스이다. (팩토리 클래스 : 객체를 생성하는 클래스) 붕어빵 팥붕어빵 = new 붕어빵(); 이게 맞는 표현이다. (붕어빵은 분류, 팥붕어빵은 실체. 얼마나 말이되는가?) 4. 객체 식별하기 객체와 클래스를 구분하는 가장 중요한 것은 ‘분류’인가 ‘사물’인가이다. 나이, 제조년월을 물었을 때.. 2019. 4. 22.
[C++] std::find() (문자열 컨테이너에서 특정 문자열 찾기) std::find() find 함수는 iterator 순차열 범위에서 원하는 값을 가진 iterator 반복자를 반환한다. 순차열 범위의 값의 타입은 숫자 혹은 문자, 문자열이다. #include #include #include #include //std::find() using namespace std; vector str = { "I","want","to","be","rich" }; int main() { //rich가 위치한 반복자 찾기 vector::iterator iter = find(str.begin(), str.end(), "rich"); //반복자를 통한 값 변경 (rich -> happy) *iter = "happy"; //happy 출력 cout 2019. 4. 21.
[C++] string::find() (문자열에서 특정 문자 찾기) string::find() string 클래스의 멤버함수로서, str.find("찾는 문자") 로 사용 반환값은 찾는 문자의 첫번째 인덱스값 찾는 문자가 없을 경우는 string::npos를 리턴한다. (npos는 no position으로 쓰레기값 나옴) #include #include //string::find() using namespace std; String str = "I want to be rich"; int main() { //rich 문자 유무 판단 if (str.find("rich") != string::npos) { cout 2019. 4. 21.
[Spring] IoC/DI 1. IoC(Inversion of Control) 제어의 역전 객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미한다. 개발자가 직접 객체를 생성하는 것이 아니라, 스프링 프레임워크(IoC 컨테이너)가 대신 해준다. IoC 컨테이너(= Spring 컨테이너, DI 컨테이너) 스프링 프레임워크는 객체에 대한 생성 및 생명주기를 관리할 수 있는 기능을 제공하고 있다. 즉, IoC 컨테이너 기능을 제공한다. 1. 객체의 생성, 의존성 관리 2. POJO의 생성, 초기화, 서비스, 소멸에 대한 권한 존재 (POJO : plain old java object로, 특정 플랫폼이나 규약에 종속되지 않는 객체를 의미한다. Java Bean을 의미) 3. 개발자가 직접 POJO를 생성할 .. 2019. 4. 21.
[프로그래머스] 이중우선순위큐 [프로그래머스] 이중우선순위큐 문제 이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다. 명령어 수신 탑(높이) I 숫자 큐에 주어진 숫자를 삽입합니다. D 1 큐에 주어진 숫자를 삽입합니다. D -1 큐에서 최솟값을 삭제합니다. 이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요. 제한사항 operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입니다. operations의 원소는 큐가 수행할 연산을 나타냅니다. 원소는 “명령어 데이터” 형식으로 주어집니다.- 최댓값/최솟값을 삭제하는 연산에서 최댓값/최솟값이 .. 2019. 4. 20.
[백준] 연구소(14502) 연구소(14502번) 문제 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다. 일부 칸은 바이러스가 존재하며, 이 바이러스는 상하좌우로 인접한 빈 칸으로 모두 퍼져나갈 수 있다. 새로 세울 수 있는 벽의 개수는 3개이며, 꼭 3개를 세워야 한다. 예를 들어, 아래와 같이 연구소가 생긴 경우를 살펴보자. 2 0 0 0 1 1 0 0 0 1 0 1 2 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 .. 2019. 4. 7.
[백준] 스타트와 링크(14889) 스타트와 링크(14889번) 문제 오늘은 스타트링크에 다니는 사람들이 모여서 축구를 해보려고 한다. 축구는 평일 오후에 하고 의무 참석도 아니다. 축구를 하기 위해 모인 사람은 총 N명이고 신기하게도 N은 짝수이다. 이제 N/2명으로 이루어진 스타트 팀과 링크 팀으로 사람들을 나눠야 한다. BOJ를 운영하는 회사 답게 사람에게 번호를 1부터 N까지로 배정했고, 아래와 같은 능력치를 조사했다. 능력치 Sij는 i번 사람과 j번 사람이 같은 팀에 속했을 때, 팀에 더해지는 능력치이다. 팀의 능력치는 팀에 속한 모든 쌍의 능력치 Sij의 합이다. Sij는 Sji와 다를 수도 있으며, i번 사람과 j번 사람이 같은 팀에 속했을 때, 팀에 더해지는 능력치는 Sij와 Sji이다. N=4이고, S가 아래와 같은 경우.. 2019. 4. 5.
[백준] 테트로미노(14500) 테트로미노(14500번) 문제 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 꼭짓점끼리 연결되어 있어야 한다. 즉, 변과 꼭짓점이 맞닿아있으면 안된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위에 테트로미노 하나를 놓으려고 한다. 종이는 1×1 크기의 칸으로 나누어져 있으며, 각각의 칸에는 정수가 하나 쓰여 있다. 테트로미노 하나를 적절히 놓아서 테트로미노가 놓인 칸에 쓰여 있는 수들의 합을 최대로 하는 프로그램을 작성하시오. 테트로미노는 반드시 한 정사각형이 정확히 하나의 칸을 포함하도.. 2019. 4. 4.
[백준] 치킨배달(15686) 치킨 배달(15686번) 문제 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미한다. r과 c는 1부터 시작한다. 이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 "치킨 거리"라는 말을 주로 사용한다. 치킨 거리는 집과 가장 가까운 치킨집 사이의 거리이다. 즉, 치킨 거리는 집을 기준으로 정해지며, 각각의 집은 치킨 거리를 가지고 있다. 도시의 치킨 거리는 모든 집의 치킨 거리의 합이다. 임의의 두 칸 (r1, c1)과 (r2, c2) 사이의 거리는 |r1-r2| + |c1-c2|로 구한다. 예.. 2019. 4. 3.
반응형