본문 바로가기

전체 글66

백준 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. 5. 6.
java 스터디 3주차 3-1)연산자연산자의 종류산술연산자 증감연산자비교연산자논리연산자대입연산자삼항연산자연산자와 피연산자연산자는 기호를, 피연산자는 숫자를 의미. 3-2)문자열 더하기+ 기호를 통해 문자열을 합칠 수 있다. 문자열+ 숫자의 경우 자바가 숫자를 문자열로 바꿔서 출력시켜줌  3-3)연산자 우선순위java의 연산자 우선순위는 수학적 연산에서의 우선순위와 같음.괄호를 사용하여 우선순위를 조절해 줄 수 있음.연산이 복잡할 경우 괄호로 식을 명시적으로 표현해주는 것이 더 좋다.괄호단항 연산자산술연산자shift 연산자비교 연산자등식 연산자비트 연산자논리연산자삼항연산자대입 연산자 일반적으로 상식선에서 우선순위를 따지면 된다.우선순위가 애매할 경우 괄호를 사용하면 된다!  3-4)증감연산자증가 및 감소 연산자++;--;변수의 .. 2024. 5. 4.
자료구조 스터디 3주차 3-1)깊이 우선 탐색  DFS가장 많이 사용되는 탐색 방법.깊이우선 탐색: 그래프 완전 탐색 기법중 하나. 시작 노드에서 출발하여 한 쪽 분기를 정해 최대 깊이까지 탐색을 마친 후 다음 분기로 너머가 탐색을 수행.재귀 함수, 스택 자료구조를 이용한다. 시간 복잡도: O(노드 수+엣지 수)깊이 우선 탐색에서 재귀함수를 이용하므로 스택 오버플로우에 유의해야 함. 한번 방문한 노드를 다시 방문하지 않으므로 노드 방문 여부를 페크할 배열이 필요하다. 대부분 인접리스트로 표현.후입선출의 특성을 가진다. 실제로는 스택 자료구조보다 스택의 성질을 갖는 재귀함수로 구현하는 경우가 더 많다.   [수행과정]  1. dfs를 시작할 노드를 정한 후 사용할 자료구조(인접리스트)를 초기화한다.  2. 스택에서 노드를 꺼내고.. 2024. 5. 4.
자료구조 스터디 2주차 2-1) 버블정렬 로직이 단순하고 구현이 쉽다는 장점이 있다. 데이터의 인접요소끼리 먼저 비교하고 swap을 통해 정렬한다. 시간복잡도는 n^2으로 다른 정렬보다 많은 시간이 걸린다. 앞에서부터 뒤로가며 요소를 비교해 정렬하여 맨 마지막 인덱스에 위치하게되는 요소는 가장 큰 요소인게 확정된다. 따라서 루프를 1회 실행할때 마다 마지막에 위치하게되는 요소가 확정되어 n^2의 시간복잡도를 가지게 된다. 만약 특정 루프의 전체 영역에서 한번도 스왑이 일어나지 않았다면 전체가 정렬되어있다는 의미이므로 루프를 탈출해도된다. 2-2) 선택정렬 최대나 최소의 데이터를 찾아가며 선택하는 방법. n^2의 시간복잡도로 빠른 방법은 아님. 정렬에 따라 최댓값또는 최솟값을 찾고 남은 정렬부분 가장 앞 데이터와 스왑하는 방식... 2024. 4. 13.