본문 바로가기
반응형

_385

[성실코딩 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.
알고리즘 공부 / 코딩 테스트 준비 = 성실코딩 알고리즘 공부는 옛날부터 하겠다는 생각만 하고 게으름뱅이,,,,,,,,,, 나는야 게으름보,,,,, 요새 하고 있긴한데 자꾸 밀리고 꼬박꼬박 안한다 특히 나는 문제를 오랫동안 붙들고 생각하는 편이라서,,, 잘 모르겠으면 한 문제를 이틀은 계속 고민하는 것 같음( 물론 48시간 내내가 아니라 생각날때마다 다시 구조화해보고,,,?) 근데 그 방법이 안좋다고함! 한 문제를 3일동안 X -> 3문제를 하루에 O 그래서 나도 그래야겠음!! 하루에 많이씩 풀어보기! 쉬운 문제 위주로 std쓰는 법도 익혀두고, 다른 사람들 코드보면서 흡수하기도하면서!!! 그리고 어떤 사람 블로그 우연히 봤는데 1일차, 2일차 날짜로 카운트해가면서 하니까 내가 언제 게을렀는지 확인할 수 있어서 좋은 것 같다!! 나도 한 번 주말을 제.. 2018. 10. 11.
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.
반응형