분류 전체보기 101

백준 11279

최대 힙최대 힙을 사용하기 위해 queue 자료구조를 사용하였다.pop()은 최대값을 삭제할 뿐 최대값을 반환해주지는 않으므로 top()을 통해 최대값을 반환받은 후 pop()으로 제거해주었다.#include#include#includeusing namespace std;int main() { ios::sync_with_stdio(false); cin.tie(NULL); priority_queuemax_heap; long long num; int x; cin >> num; for (int i = 0;i > x; if (x == 0) { if (max_heap.empty()) { cout

백준 문풀 2024.05.06

백준 7785

회사에 있는 사람공백을 구분된 두 입력을 받을 때 cin>>n>>m; 이어서 쓰면된다.it은 interator로 it->first는 요소의 첫번째인 key를 의미하고  it->second은 요소의 value를 의미한다.맵에 저장된 순서의 역순으로 출력하기 위해 rbegin()과 rend()를 사용하여 역순 순서로 출력할 수 있도록 해주었다.  #include #include #include using namespace std;int main() { ios::sync_with_stdio(false); cin.tie(NULL); mapemployee; int num = 0; string name, work; cin >> num; for (int i = 0;i > name..

백준 문풀 2024.05.06

java 스터디 3주차

3-1)연산자연산자의 종류산술연산자 증감연산자비교연산자논리연산자대입연산자삼항연산자연산자와 피연산자연산자는 기호를, 피연산자는 숫자를 의미. 3-2)문자열 더하기+ 기호를 통해 문자열을 합칠 수 있다. 문자열+ 숫자의 경우 자바가 숫자를 문자열로 바꿔서 출력시켜줌  3-3)연산자 우선순위java의 연산자 우선순위는 수학적 연산에서의 우선순위와 같음.괄호를 사용하여 우선순위를 조절해 줄 수 있음.연산이 복잡할 경우 괄호로 식을 명시적으로 표현해주는 것이 더 좋다.괄호단항 연산자산술연산자shift 연산자비교 연산자등식 연산자비트 연산자논리연산자삼항연산자대입 연산자 일반적으로 상식선에서 우선순위를 따지면 된다.우선순위가 애매할 경우 괄호를 사용하면 된다!  3-4)증감연산자증가 및 감소 연산자++;--;변수의 ..

자료구조 스터디 3주차

3-1)깊이 우선 탐색  DFS가장 많이 사용되는 탐색 방법.깊이우선 탐색: 그래프 완전 탐색 기법중 하나. 시작 노드에서 출발하여 한 쪽 분기를 정해 최대 깊이까지 탐색을 마친 후 다음 분기로 너머가 탐색을 수행.재귀 함수, 스택 자료구조를 이용한다. 시간 복잡도: O(노드 수+엣지 수)깊이 우선 탐색에서 재귀함수를 이용하므로 스택 오버플로우에 유의해야 함. 한번 방문한 노드를 다시 방문하지 않으므로 노드 방문 여부를 페크할 배열이 필요하다. 대부분 인접리스트로 표현.후입선출의 특성을 가진다. 실제로는 스택 자료구조보다 스택의 성질을 갖는 재귀함수로 구현하는 경우가 더 많다.   [수행과정]  1. dfs를 시작할 노드를 정한 후 사용할 자료구조(인접리스트)를 초기화한다.  2. 스택에서 노드를 꺼내고..

자료구조 스터디 2주차

2-1) 버블정렬 로직이 단순하고 구현이 쉽다는 장점이 있다. 데이터의 인접요소끼리 먼저 비교하고 swap을 통해 정렬한다. 시간복잡도는 n^2으로 다른 정렬보다 많은 시간이 걸린다. 앞에서부터 뒤로가며 요소를 비교해 정렬하여 맨 마지막 인덱스에 위치하게되는 요소는 가장 큰 요소인게 확정된다. 따라서 루프를 1회 실행할때 마다 마지막에 위치하게되는 요소가 확정되어 n^2의 시간복잡도를 가지게 된다. 만약 특정 루프의 전체 영역에서 한번도 스왑이 일어나지 않았다면 전체가 정렬되어있다는 의미이므로 루프를 탈출해도된다. 2-2) 선택정렬 최대나 최소의 데이터를 찾아가며 선택하는 방법. n^2의 시간복잡도로 빠른 방법은 아님. 정렬에 따라 최댓값또는 최솟값을 찾고 남은 정렬부분 가장 앞 데이터와 스왑하는 방식...

java 스터디 2주차

2-1) 변수 하위 폴더 생성 방법 variable이라는 이름의 하위 폴더 생성 폴더 아래에 새로운 java class 생성! (관례상 클래스 이름의 첫 문자는 대문자로 써주기) 패키지 자바 파일을 구분하기 위한 폴더 정도임. Variable 이라는 패키지를 생성했다면 해당 패키지 파일 첫줄에 pakeage Variable; 처럼 소속된 패키지를 선언해주어야 함. 파바 파일이 위치하는 패키지와 pakeage Variable; 선언 위치가 같아야함 변수 변할 수 있는 값. 저장공간 변수의 선언과 초기화의 예시. 중복된 값들을 한번에 변경가능하게 해준다. a의 값을 변경해줬더니 출력 결과가 모두 변한 것을 확인할 수 있음. int 형 변수 정수를 보관할 수 있는 데이터 저장소. 변수를 만드는것을 변수 선언이..

자료구조 스터디-1주차

1-1)배열과 리스트 파이썬의 리스트는 배열의 특성도 내포하고있음. 파이썬에서의 리스트는 배열의 특성까지 가지게 구현되어있음. 인덱스로 접근이 가능하고 가변적으로 변하는 크기라는 장점만 가지고있다. 자료구조에서 배열: 메모리의 연속된 공간에 값이 채워져있는 형태의 자료구조. 값을 인덱스를 통해 직접 접근할 수 있다. 새로운 값의 삽입이나 삭제가 어렵다는 단점이 있다. 배열의 크기는 선언시에 지정할 수있으며 한번선언한 이후 크기를 조절할 수 없다. 자료구조에서 리스트: 값과 포인터를 묶은 노드라는것을 포인터로 연결한 자료구조. 값에 접근하려면 인덱스가 없기때문에 head 포인터로부터 순차적으로 접근해야한다는 단점이 있다. 포인터로 연결되어 데이터 삽입삭제의 속도가 빠르고 선언할 때 별도의 크기를 지정하지 ..

java 스터디 1주차

1-1)개발 환경 설정 자바의 개발 툴로 많이 사용되는 이클립스와 인텔리제이. 빠른 속도와 편의성의 장점으로 현재 자바개발 툴로는 주로 인텔리제이가 사용된다. 인텔리제이는 무료버전과 유료버전 두가지 형태가 있는데, 현재 강의에서는 무료 버전으로 진행한다. 자발 개발의 운영체제로는 주로 mac이 사용된다. 하지만 윈도우에서 개발을 해도 무방하다. 인텔리제이 윈도우 무료 버전 설치 방법 1. 홈페이지에서 아래로 스크롤해 무료버전 다운로드를 찾고 .exe로 다운로드 2. 다운로드 경로를 설정 3.설치 옵션 설정 4. 설치완료 새프로젝트 생성 프로그램 실행 방법 코드 왼쪽 초록색 삼각형을 눌러 run 1-2)다운로드한 소스코드 실행방법 new-> project from existing sourcecode 클릭 ..