알고리즘

    [C++/백준 2110] 공유기 설치

    #include #include using namespace std; int home[200001]; int ans = 0; void binary_search(int n, int c){ int l = 0; int r = home[n-1] - home[0]; while(1){ if(l > r){ return; } int mid = (l + r) / 2; // 거리를 mid 이상으로 해서 몇개의 공유기를 설치할 수 있는가? int count = 1; int compare = home[0]; for(int i = 1 ; i = mid){ count++; compare = home[i]; } } if(count < c){ //설치할 수 없다. 거리를..

    [C++/백준 5052] 전화번호 목록

    //5052 전화번호 목록 #include #include using namespace std; int main() { ios_base :: sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int t; cin >> t; while(t--){ int n; cin >> n; string phone[n]; for(int i = 0 ; i > phone[i]; } sort(phone, phone + n); string compare = phone[0]; bool consistent = true; for(int i = 1 ; i phone[i].leng..

    [C++/백준 17928] 오큰수

    문제 크기가 N인 수열 A = A1, A2, ..., AN이 있다. 수열의 각 원소 Ai에 대해서 오큰수 NGE(i)를 구하려고 한다. Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오큰수는 -1이다. 예를 들어, A = [3, 5, 2, 7]인 경우 NGE(1) = 5, NGE(2) = 7, NGE(3) = 7, NGE(4) = -1이다. A = [9, 5, 4, 8]인 경우에는 NGE(1) = -1, NGE(2) = 8, NGE(3) = 8, NGE(4) = -1이다. 첫 번째 코드 (38% 시간초과) #include #include using namespace std; int main() { ios_base :: sync_with..

    [백준/C++] 톱니바퀴

    //14891 톱니바퀴 #include #include #include using namespace std; void clock_turn(vector &wheel, int current){ vector temp; temp.push_back(wheel[current][7]); for(int i = 0 ; i < 7 ;i++){ temp.push_back(wheel[current][i]); } //바꿔치기 for(int i = 0 ; i < 8 ; i++){ wheel[current][i] = temp[i]; } } void clock_turn_reverse(vector &wheel, int current){ vector temp; for(int i = 1 ; i < 8 ;i++){ temp.push_bac..

    [C++/백준 21608] 상어 초등학교

    //21608 상어 초등학교 #include #include #include using namespace std; int n; int dr[4] = {0, 0, 1, -1}; int dc[4] = {1, -1, 0, 0}; void find_seat(vector &seat, vector &like, int student){ int min_val = 0; for(int i = 0 ; i 0) continue; //배정되지 않은 자리 int count = 0; int no_seat = 0; for(int k = 0 ; k < 4 ; k++){ int nr = i+dr[k]; int ..

    [C++/백준 14502] 연구소

    https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net //14502 연구소 #include #include #include using namespace std; int max_val=0; int n, m; void bfs(vector &board){ queue q; vector new_board(n, vector(m, 0)); for(int i = 0 ; i < n ; i++){ for(int j = 0 ; j < m ; j++){ if(board[i][j]==..