코딩테스트

    [3] 입국 심사

    #include #include #include using namespace std; long long solution(int n, vector times) { long long min = 1, max = (long long)n * (*max_element(times.begin(), times.end())); long long answer = 0; while(min

    [2] 오픈 채팅방

    vector OpenChat(vector record) { vector answer, state; map user; for (int i = 0; i > token) str[index++] = token; if (str[0] == "Enter") { state.push_back("님이 들어왔습니다."); answer.push_back(str[1]); user[str[1]] = str[2]; } else if (str[0] == "Leave") { state.push_back("님이 나갔습니다."); answer.pus..

    [2] 이진 변환 반복하기

    vector BinaryCode(string s) { vector answer(2, 0); int zeroCount = 0, round = 0; while (s != "1") { string tmpStr = ""; int size = 0, num; round++; for (int i = 0; i 0) { s += to_string(num % 2); num /= 2; } } answer[0] = round; answer[1] = zeroCount; return answer; }

    [실1] 1932 - 정수 삼각형

    #include #include using namespace std; int arr[501][501]{ 0 }; int dp[501][501]{ 0 }; int main() { int n; cin >> n; for (int i = 1; i arr[i][j]; dp[1][1] = arr[1][1]; for (int i = 2; i

    [실3] 15650 - n과 m(2)

    #include #include using namespace std; #define MAX 9 int n, m; int arr[MAX]{ 0 }; bool visited[MAX]{ 0 }; void dfs(int num, int depth) { if (depth == m) { for (int i = 0; i < m; i++) cout m; dfs(1, 0); }

    [실3] 15649 - n과 m(1)

    #include using namespace std; #define MAX 9 int n, m; int arr[MAX]{ 0 }; bool visited[MAX]{ 0 }; void dfs(int depth) { if (depth == m) { for (int i = 0; i < m; i++) cout m; dfs(0); }

    [골5] 7569 - 토마토

    #include #include #include #include #include #include #include #include using namespace std; using int_pair = pair; #define SIZE 1000 #define y first #define x second // 윗층 뒤 우 아래층 잎 좌 pair arr_pos[] { {1, {0, 0}}, {0, {-1, 0}}, {0, {0, 1}}, {-1, {0, 0}}, {0, {1, 0}}, {0, {0, -1}} }; vector graph; // w:넓이, h:높이, l:층수 int w, h, l; queue q; void BFS() { #define ARR_POS_SIZE 6 while (!q.empty()) { ..

    [골5] 7576 - 토마토

    #include #include #include #include #include #include #include #include using namespace std; using int_pair = pair; #define SIZE 1000 #define y first #define x second // 상 하 좌 우 int_pair arr_pos[] { { 1, 0}, {-1, 0}, {0, -1}, {0, 1} }; vector graph; // w:넓이, h:높이, k:테스트 개수 int w, h, k; queue q; void BFS() { while (!q.empty()) { auto front = q.front(); q.pop(); for (int i = 0; i < 4; i++) { int n..

    [골3] 2812 - 크게 만들기

    #include #include #include #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, k; string str; vector v; cin >> n >> k >> str; for (int i = 0; i 0 && !v.empty() && v.back() < str[i]) { v.pop_back(); k--; } v.push_back(str[i]); } while (k--) v.pop_back(); for (int i = 0; i < v.size(); i..

    [플5] 16496 - 큰 수 만들기

    정렬 함수 3번째 인자 _Pred 람다 함수로 깔끔하게 해결 #include #include #include #include #include using namespace std; #define SIZE 1000 int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); string arr[SIZE]; int n; cin >> n; cin.ignore(); int flag = 0; for (int i = 0; i > arr[i]; if (arr[i] != "0") flag = true; } if (!flag) cout str2 + str1; }); cout