코딩테스트

    [실1] 15724 - 주지수

    #include #include using namespace std; #define SIZE 1050 int n, m, t, arr[SIZE][SIZE]{ 0 }; int main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n >> m; for (int i = 1; i a; arr[i][j] = a + arr[i - 1][j] + arr[i][j - 1] - arr[i - 1][j - 1]; } } cin >> t; while (t--) { int x1, x2, y1, y2; cin >> x1 >> y1 >> x2 >> y2; cout

    [실4] 1120 - 문자열

    #include #include #include using namespace std; int main() { string a, b; cin >> a >> b; int aLength = a.size(), bLength = b.size(); int res = INT_MAX; for (int i = 0; i

    [실4] 3986 - 좋은 단어

    #include #include #include using namespace std; int main() { int n, res = 0; cin >> n; while(n--) { string str; cin >> str; stack s; for (int i = 0; i < str.size(); i++) { if(!s.empty() && s.top()==str[i]) { s.pop(); continue; } s.push(str[i]); } if (s.empty()) res++; } cout

    [3] 등굣길

    #include #include #define SIZE 101 using namespace std; int solution(int m, int n, vector puddles) { int check[SIZE][SIZE]{0}, vis[SIZE][SIZE]{0}; for(int i=0;i

    [실2] 11725 - 트리의 부모 찾기

    #include #include #include #include using namespace std; #define MAX_SIZE 100001 vector graph[MAX_SIZE]; int arr[MAX_SIZE]; bool vis[MAX_SIZE]; int main() { int n; cin >> n; for (int i = 1; i > y >> x; graph[y].push_back(x); graph[x].push_back(y); } stack s; s.push(1); vis[1] = true; while (!s.empty()) { auto idx = s.top(); s.pop(); for (int i = 0; i < graph[idx].size(..

    [실3] 15654 - N과 M (5)

    #include #include #include using namespace std; #define MAX 9 vector v; int arr[MAX]{ 0 }; bool vis[MAX]{ 0 }; int n, m; void dfs(int idx) { if (idx == m) { for (int i = 0; i m; v.resize(n); for (int i = 0; i > v[i]; sort(v.begin(), v.end()); dfs(0); }

    [골4] 1922 - 네트워크 연결

    #include #include #include using namespace std; #define MAX 100001 struct sEdge { int val, a, b; }; vector graph; int parent[MAX]; int res = 0; int Find(int x) { return (parent[x] == x) ? x : parent[x] = Find(parent[x]); } void Union(int x, int y) { x = Find(x), y = Find(y); if (x != y) parent[y] = x; } bool Cmp(sEdge edge1, sEdge edge2) { return (edge1.val < edge2.val); } int main() { ios_base:..

    [3] 단속 카메라

    #include #include #include using namespace std; int solution(vector routes) { int answer = 1; sort(routes.begin(), routes.end()); int tmp = routes[0][1]; for (auto a : routes) { if (tmp = a[1]) tmp = a[1]; } return answer; }

    [3] 베스트 앨범

    참고 사이트 : 알고리즘(C++) / 프로그래머스 level 3 : 베스트앨범 (tistory.com) #include #include #include #include #include #include #include using namespace std; using StringPair = pair; using IntPair = pair; // 내림차순 정렬 bool CmpStr(StringPair& a, StringPair& b) { return a.second > b.second; } bool CmpInt(IntPair& a, IntPair& b) { return (a.first == b.first) ? a.second b.first; } vector soluti..

    [3] 이중 우선순위 큐

    삭제 추가가 용이한 이중 연결 리스트를 사용했다. #include #include #include #include using namespace std; vector solution(vector operations) { vector answer; list bl, sl; for (const auto& item : operations) { string str = item; str.erase(remove(str.begin(), str.end(), ' '), str.end()); if (str[0] == 'I') { string tmpStr = ""; for (int i = 1; i < str.size(); i++) tmpStr += str[i]; bl.push_back(stoi(tmpStr)); bl.sort(..