본문 바로가기
반응형

전체 글69

[Java] 자바 프로그램 구동 및 실행 과정 먼저, 컴퓨터를 구동하기 위해서는 다음 세가지가 필요하다. 1. 물리적 컴퓨터인 하드웨어 (JVM과 대응) 2. 운영체제 (JRE와 대응) 3. 구동될 소프트웨어 (JDK와 대응) Java 프로그램 구동 역시 위의 세가지에 대응되는 JVM, JRE, JDK 가 필요하다. 1. JDK(Java Development Kit) 자바 개발 도구 javac.exe (자바 소스 컴파일러) 포함 2. JRE(Java Runtime Environment) 자바 실행 환경 java.exe (자바 프로그램 실행기) 포함 JVM용 운영체제 3. JVM(Java Virtual Machine) 물리적 컴퓨터가 아닌 가상의 컴퓨터 소스코드(.java)가 컴파일 되어 생성된 바이트코드(.class) 를 실행 바이트코드는 JVM 위.. 2019. 4. 27.
[C++] cin.eof() (파일 데이터를 끝까지 입력 받기) cin.eof() 간혹, 알고리즘 문제에서 입력값의 범위가 주어지지 않는 경우가 있다. 이는 파일이 종료될때까지 입력을 받으라는 의미이므로, cin.eof()를 사용하면 된다. bool타입을 가진다. 만약 파일의 끝을 의미하는 EOF를 읽게 되면, true값으로 바뀌게 된다. 콘솔 창에서는 EOF를 수동으로 넣어주어야 한다. 이때, 윈도우 기준 ctrl+z가 EOF를 의미한다. #include //cin.eof() using namespace std; int n; int main() { while (!cin.eof()) { //EOF를 만날때까지 무한 입력 cin >> n; } } 2019. 4. 26.
[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.
반응형