전체 글

C++/C++

16. String 클래스와 표준 템플릿 라이브러리 (미완, 일반화 프로그래밍)

string 클래스 문자열 생성 string 클래스 입력 문자열 작업 string 클래스가 제공하는 그 밖의 기능 C++ 시스템들은 실제 문자열보다 훨씬 큰 메모리 블록을 대입하여 문자열이 자랄 수 있는 공간을 제공한다. 그러고 나서, 그 문자열이 마침내 그 크기를 초과하게 되면, 프로그램은 그 크기의 두 배인 새로운 블록을 대입하여 연속적인 크기 조절 없이 문자열이 자랄 수 있게 더 많은 공간을 제공한다. capacity() 메서드는 현재 블록의 크기를 리턴하고, reserve() 메서드는 그 블록을 위한 최소 크기를 사용자가 요청하게 한다. string 객체를 가지고 있지만 C 스타일 문자열이 필요할 때 c_str() 메서드가, 호출하는 string 객체와 동일한 내용을 가지는 C 스타일 문자열을 가..

코딩 공부/TIL(Today I Learn)

VSC C++ 셋팅 메모 (+ Thread가 안될때)

Unreal Engine에서 자신들의 컴파일러(VS framework)를 통해서 컴파일 하게 되는데, 이때 편집기로 VSC를 사용하니 이후 일반 cpp 파일이 컴파일이 되지 않아 확인하며 쓴 글이다. 컴파일이 되지 않았던 이유는 컴파일러 셋팅과 단축키 셋팅이 있는 폴더(워크 스페이스)에서 컴파일 하지 않았기 때문이다. (기존 C++ 폴더가 워크스페이스로 지정되지 않고 Unreal Engine Project 폴더로 지정되어 있었다) 워크 스페이스(폴더)에 사용자가 셋팅 해놓은 .vscode 폴더(task.json etc)를 통해 컴파일 및 빌드, 단축키와 같은 설정을 할 수 있다. + 추가) Thread가 실행이 되지 않아 해결 방법을 찾던중 기존 mingw를 삭제하고 msys를 설치하여 해결하였다. 따라..

카테고리 없음

[백준 16953][C++] A → B

문제 링크 https://www.acmicpc.net/problem/16953 ◆문제 해결 및 설명◆ A에 할 수 있는 연산은 A *= 2 와 A = A*10+1 이 있다. A *= 2 혹은 A = A*10+1 두개에서 하나를 골라서 연산을 할경우의 시간 복잡도는 O(2^n)이다. 제일 낮은 수치 증가 식인 A *= 2 만 한다고 하고 A가 가장 낮은 1인값, 최대 10의9승(B의 최댓값) 보다 낮되 가장 큰값이 되기 위한 연산 횟수는 최대 30번이다. 따라서 최대 연산 깊이는 30이다. 따라서 완전 탐색으로 풀어보았다. ◆코드 전문◆ #include using namespace std; long A, B, answer = -1; void cal(long buf, int depth) { if (buf =..

코딩 공부/백준(C++)

[백준 1987][C++] 알파벳

문제 링크 https://www.acmicpc.net/problem/1987 오늘의 생각 : 시간 초과가 날때, 백트래킹 기준이 안보이면 방식을 바꿔보자. ◆문제 해결 및 설명◆ 문제 해설 : 알파벳이 써있는 맵위 (0,0) 위치에서 출발하여 상하좌우로 움직일때, 새로 이동한 칸은 지금까지 지나온 모든 칸에 적혀있는 알파벳과 달라야 할때 최장거리를 구하여라 처음에는 맵을 나타내는 이차원 배열 map의 크기와 같게 visited 배열을 선언하고 못 가는 곳을 1로 설정해 dfs로 구현하였으나, 시간 초과로 인하여 visited를 일차원 배열로 설정 하였다. ◆코드 전문◆ #include #include #include using namespace std; int R, C, answer = 0; vector..

메카인
메카인의 지식창고