본문 바로가기

알고리즘문제풀이

(38)
[백준14502]연구소 1)문제분류 -DFS-BFS 2)해결방안 -기본 DFS와 BFS를 안다면 풀 수 있는 난이도? - 먼저 DFS로 3개의 막대를 세워보며 BFS로바이러스를 퍼뜨린다. - 그 후, 안전지대를 카운트 세며 크기비교하면, 가장 넓은영역을 알 수 있다. #include#include#include#include#includeusing namespace std; typedef struct v{int x, y;}v;queuevirous;int map[10][10];int xrr[4] = { 0,0,1,-1 };int yrr[4] = { 1,-1,0,0 };int n, m, hap;int ans = 0;//안전영역int BFS(){queuetemp;temp = virous;int chk[10][10] = { 0, };..
[백준 2151]거울설치 문제 : https://www.acmicpc.net/problem/2151 1)문제분류 -BFS -다익스트라 2)해결방법 - 거울설치는 45도 이다.그러므로 거울이 /와 \ (걍 이해하기쉽게 거울을 표현한 문자) 두가지로 꺾인다고 생각하고 문제를 푼다. 예) -> 오른쪽방향으로오는경우 / 을 만나면 ↑ \을 만나면 ↓ 오른쪽방향,왼쪽방향으로 갈때 거울반사에 의해 꺾이는 방향 동일하다. 위쪽방향,아래쪽방향으로 갈때 거울반사에 의해 꺾이는 방향 동일하다. - 대신 거울이 설치 될수있는 위치가 ' ! '라고 표현한것이므로 거울 설치 안하는 경우도 생각해줘야한다. 그냥 통과하는 경우도 고려해서 거울 설치 최소값을 구해야한다.! -현재 위치에서 바라보는 방향이 같다는 가정하에 ,이제것 설치한 거울 수가 적으면 큐..
[백준14627]파닭파닭 종류:이분탐색주의점: 범위에 주의 문제는 요기 ->https://www.acmicpc.net/problem/14627 #includeusing namespace std; long long int N, C;//파의개수, 주문받은 파닭의 수 long long int arr[10000002];long long int ans;long long int ramen;long long int sum = 0;long long int Func(){long long int left = 1;long long int right = 1000000000;while (left ans) ans = mid;left = mid+1;}else{right = mid - 1;}}return sum - ans*C;}int main(){scanf..
[백준 14890]경사로 문제는 요기 ->https://www.acmicpc.net/problem/14890 나의 궁금증 1.왼쪽부터? 오른쪽부터..? 시작은 어디서?2.시간을 줄일 방법이 뭘까3.위에서 아래로가는경우, 아래서 위로가는경우, 왼쪽에서 오른쪽가는 경우, 오른쪽에서 왼쪽가는 경우 함수를 다 만들어야하는가..? 한가지 함수로 만드는 방법이 뭘까 해결방안1.배열을 한개 더 만들어서 세로열,가로열 뒤집어서 넣기 2.왼쪽에서 오른쪽 방향으로 현재 값과 그 다음 값이 다르다 2-[1]. 현재값과 다음값의 차이가 1이 난다. 2-[1]-(1) 경사로를 어느 방향으로 놓아줄껀지 (오른쪽 방향인가 ? 왼쪽 방향인가 ?) 2-[1]-(1) .1 L길이 만큼 놓을 수 있는지 같은 값 개수 확인 -> 경사로를 놓았던 길이 아닌지 ? 2..
[백준 14889]스타트와 링크 문제는 요기->https://www.acmicpc.net/problem/14889 분류는 dfs! 나의 문제점:문제를 안푼지 오래되서 dfs로 팀 나누는 조건을 만들생각을 하지못했고!!... dfs로 한개의 팀을 만든후에 함수 호출로 나머지 팀을 만들어주려고 하다보니 시간 초과가 났다. 1.벡터를 사용해서 두개의 팀을 분리.2.dfs의 매개변수로 string 으로가지고 다닐 것!->나는 매개변수로 안가지고다니고 일차원배열에 집어 넣고 기저조건에서 함수 호출해서 그때 일차원배열을 검사했는데 이부분에서 시간초과가 발생한듯 #include#include#include#includeusing namespace std;int N; int arr[22][22];int ans = 999999999;void func(..
[백준 14891]톱니바퀴 문제는 요기 -> https://www.acmicpc.net/problem/14891 처음에 짤때는 너무 지저분하게 짜서 다른사람 소스보면서 정리 했당.. 시뮬레이션 문제이다 #include using namespace std; char chain[5][15]; int turnchk[5], result, K, num, dir; void turn(int n, int d) { char copy[10]; for (int i = 1; i num >> dir; func(num, dir); for (int j = 1; j