본문 바로가기
반응형

SWE326

[성실코딩 1일차] 백준 #1021 회전하는 큐 * &s 처음에 생각한 방법 1. circular queue를 생성. int head = 배열의 처음을 가리킴. 배열의 인덱스로 참조. int tail = 배열의 마지막 원소를 가리킴. 배열의 인덱스로 참조. 두 개의 변수를 가지고 있고, tail = (tail+1)%SZ 와 같은 방식으로 이동을 한다. 2. 뽑아내려고 하는 수의 위치가 head, tail 중 가까운 것에 따라 동작을 다르게 함. - head와 가까움 -> 2번 작업 ( 왼쪽으로 이동 ) - tail과 가까움 -> 3번 작업 ( 오른쪽을 이동 ) 3. 배열에 저장해 놓은 값 = 초기 원소의 위치 (뽑아내려고 하는 수의 위치는 값으로 참조) 0 1 2 3 4 5 6 7 8 9 m; tail = n-1; // 큐의 마지막 인덱스를 가리키고 있다. /.. 2018. 10. 12.
Merge Sort 합병정렬 Merge Sort 합병정렬 개념- 분할 정복(divide and conquer) 방법의 하나의 예 -> 문제를 작은 2개의 문제로 분리하고 각각을 해결한 다음, 결과를 모아서 원래의 문제를 해결하는 전략. - 합병정렬은 하나의 리스트를 두 개의 균등한 크기로 분할하고, 분할된 부분 리스트를 정렬한 다음 두 개의 정렬된 부분 리스트를 합하여 전체가 정렬된 리스트를 얻고자 하는 것. - bottom-up 방식 (아래에서 위로 올라가서 결과가 됨) - 1단계 : n개의 데이터를 1개로 다 자른다. 2단계 : 토너먼트 형식으로 데이터 두 개를 하나로 붙인다. 붙일 때 정렬을 하며 붙임. 반복 : 데이터의 원소가 2개 있는 각각의 2개의 데이터를 하나로 붙인다. 반복 : 데이터의 원소가 4개 있는 부분집합을 8.. 2018. 10. 11.
[C++ STL] string 공백 포함한 문자열 입력받기 나 c쓰다가 c++ 적응 안되서 매번 string 입력 받는거 찾아보는데 정리 좀 해둬야겠어!! 아니면 책을 하나 정해서 표준을 외워두는게 좋을까..? 일단 이거 매우 유용한 것 같으니 #include // cin, cout, getline #include // stringstream, split_stream #include // compare int main(void) { int n; // 몇 줄 입력받을 것인지 cin >> n; int nn = n+1; // getline에서 처음에 숫자 입력받는 것도 포함하기 때문에 n+1을 해줘야 함 while (nn-- > 0) { // 한 줄씩 입력 받음 string line; getline(cin, line); // 띄어쓰기(공백)도 입력받을 수 있음. 엔터.. 2018. 10. 10.
백준_10866_덱 / queue, string 허헣 쉬운거 풀고싶어서 이거 찾아 풀었음 근데 나름 string 공부하기에 좋았던 것 같음. c++은 버전마다 표준문법?이 있어서 참 어려운 것 같음 ㅠㅠ 어떤 버전은 지원하고 어떤 버전은 지원 안하고,,, stl 에서 제공하는 queue사용하지 않고 struct 만들어서 sll로 구현했음. 매우 쉬움. string 함수들은 c+14버전으로 작성했음. (stringstream은 아닌가..?) #include #include #include #include #include //string.compare using namespace std; struct node { int data; struct node *next; struct node *pre; }; struct node *head=0; struct no.. 2018. 10. 10.
반응형