본문 바로가기

Programming399

백준 뱀 기출 민을 사용하기에 알고리즘 헤더파일이 들어가고, 벡터는 처음 방향이 변경되는 저보가 들어갑니다. 그리고 라인이라는 구조체에는 좌표 2개가 들어갑니다. 그리고 방향정보 총 5개의 변수가 들어갑니다. 그리고 이 변수들에 대해서 dir 의 경우에는 가로일때 0 표시, 세로 일때 1 표시를 하게 딥니다. 그리고 좌표들을 정렬해주는데, x2 가 큰 것으로도 설정합니다. 그러므로 일반적으로 생각하는 왼쪽에 엑스 큰값, 위쪽이 큰값입니다. 와이는. 이것을 주의하도록 합니다. 그리고 이에 대해서 벡터에 4개의 선분을 그어주도록 합니다. 그리고 dx dy 의 값에 주의를 하도록 합니다. 엑스는 오른쪽으로 갈때 커지는 것이고, 와이는 위로 갈때 커지는 값입니다. 0 1 2 3 의 순서는 북 서 남 동 순서 입니다. 다음으로.. 2018. 2. 20.
백준 연산자 끼워넣기 /*연산자 끼워넣기. dfs 에서 필요한 파라미터가 무엇인지 명확히 해야 합니다.퇴사 문제도 이것과 동일합니다. 어떤 파라미터를 가지고 갈 것인지 명확히 해야합니다.여기서는 min, max 값 두개로 양분할 필요는 없고, sum 으로 가져가고, 나머지 연산의 밸류들을가지고 가면 됩니다. 그리고 숫자 인덱스를 가지고 가야합니다.*/ #include #include using namespace std;#define SIZE 100 int N;int numArr[SIZE];int operArr[4];int maxVal=-1000000000, minVal=1000000000;int sum; void problemIn() {cin >> N;for (int i = 0; i > numArr[.. 2018. 2. 18.
백준 째로탈출2 /*단, 파란 구슬이 구멍으로 같이 나오면 실패입니다.최대 10번까지 보드를 조작할 수 있으므로 BFS 탐색을 이용하면 각 상태 공간에서상하좌우 4방향으로 전이 가능하고, 한 상태 공간에서 해당 방향으로 최대 max 만큼이동할 수 있으니, 4의 10승 곱 맥스 엔엠임을 알 수 있습니다.따라서 각 상태 공간 내에서 한 방향으로 이동할때 1. 빨간 구슬과 팔나 구슬이 일직선 상에 없음 1.1 빨구 가는 길에 구멍이 있는 경우 탈출 성공 1.2 파구 가는 길에 구멍이 있는 경우 탈출 실패 1.3 구멍이 없는 경우 구슬들을 최대한 이동한 후에 큐에 푸시2. 빨간 구슬 가는 길에 파란 구슬이 있는 경우 2.1 파란 구슬 앞에 구멍이 있는 경우 탈출 성공 2.2 파란 구슬 뒤에 구멍이 있는 경우 탈출 실패3. 파란.. 2018. 2. 13.
백준 뱀3190 /*사과를 먹으면 뱀 길이가 늘어납니다. 뱀이 기어다니다 벽 또는 몸과부딪히면 게임이 끝납니다. 엔엔 정사각 보드위에서 진행됩니다.몇몇 칸에 사과, 보드의 상화좌우 끝에 벽이 있습니다. 뱀은 맨위 맨 좌측뱀의 길이는 1 입니다. 오르쪽을 향합니다. 몸길이를 늘려 머리를 다음칸에 위치.이프 이동한칸 사과 있으면, 그 칸에 있던 사과없어지고 꼬리는 그대로엘스 사과가 없으면, 몰길이르 줄여 꼬리를 위치한 칸을 비워줍니다. 그 결과 사과의 위치와 뱀의 이동경로가 주어질 때 게임이 몇 초 후에 끝나는지 계산뱀의 길이나, 위치를 어떻게 저장해야하는지.*/ #include #include #include #define SIZE 10using namespace std;int N, K, L, X, C, a_x, a_y,.. 2018. 2. 13.
백준 뱀 /*가로 길이 세로길이 2엘+1 2차원 홀수 격자,엑스 와이. 가운데 0,0 엑스 와이 방향에대해서 오른쪽, 아래.뱀의 크기가 격자판의 한 칸의 크기. 뱀의 머리는 격자판의 오른쪽을 보고 있음, 바라보고 있는 방향으로 1초에 한 칸씩 몸을 늘려나감뱀의 머리는 그 방향의 칸으로 옮겨갑니다. 예를 들어보면, L=3 인 경우를 생각해보면뱀은 처음에 0,0에 있으며, 격자판 한 칸 만큼, 뱀의 머리가 바라보는 방향 오른쪽1초가 지나면 두 칸을 차지하게 되며, 애 때 1,0 칸에 뱀의 머리 1초가 더 지나면세 칸을 차지하게 되고, 뱀의 머리는 2,0 에 놓이게 됩니다. 머리가 향하고 있느 방향을 일정한 규칙에 따라 시계방향, 반시계방향으로 회전1번째 회전은 뱀이 출발한지 t1초 후에 일어나며, 아이번째 회전은 뱀.. 2018. 2. 12.
백준 퇴사 #include #include using namespace std; #define SIZE 16 int T[SIZE];int P[SIZE];int n;int maxVal; void problemIn() {cin >> n;for (int i = 1; i > T[i] >> P[i];}/*입력을 받은 다음에, 만약에 7일까지 일이 가능하다고 하면, 티를 더하고, 가격을 더하고, 어떤 조건을 만족하면, 맥스를 취합니다.그리고 그 아래에는 인덱스만 하나 올라가고, 섬은 그대로 입니다. 오께이요. 인덱스 하나만 앞으로 올라가도록 합니다. 내가 만든 알고리즘과 비교하면 완전 차이가 많이 나네요. 뎁스는 하나 전진하고, 섬은 그대로 유지하는 것이 키워드 입니다.그 아래와 처음 리턴하는 조건문에 대해서는 풀 수 있습니.. 2018. 2. 12.
백준 연구소 /*바이러스 연구소 크기 엔엠, 벽의 개수는 3개, 꼭 3개를 세움니다.0은 빈칸 1은 벽 2는 바이러스, 안전영역의 크기는 27안전 영역의 크기를 최대로 구하는 것 벽은 빈칸에다가 만들 수 있습니다.벽 1을 3개 놓고 dfs 재귀로 돌립니다.바이러스 2에 대해서 완전탐색 bfs 를 돌립니다.체크 벽 하나를 맏듭니다. 안전 영역의 크기를 최대값을 저장하는 함수를 만들도록 합니다.맵을 복사해야할 것 같습니다. 맵을 복사 맵을 복사하는 방법이 있습니다. 맵에 대해서 어떻게 재귀를 만들 수 있을까?*/ #include #include #include using namespace std;#define SIZE 8int map[SIZE][SIZE];int map_store[SIZE][SIZE];int check[.. 2018. 2. 8.
백준 z /*예를 들어서 3 7 7 을 받았다고 가정해봅니다.그럼 2^3 2^3 = 8 * 8 행렬에서 7 행 7얄은 몇번째입니까?를 물어보는 문제입니다. 오께이. 어디에 위치하는가? 이 함수는 2차적인 것입니다. 일단 시간 초과에 대해서 고려하지 안하고, 저것에 대해서 풀어보도록 하겠습니다.맵을 형성하지 말고, 어디에 있는지 찾은 다음에, 숫자만 더해주는 식으로 풀어보도록하겠습니다. 예를 들어서 지금 3 7 7 에 대해서 풀어보도록 하겠습니다.*/ #include #include using namespace std; long long n, r, c;long long sum; void problemIn() {cin >> n >> r >> c;} void solve(int depth) { if (depth == 1.. 2018. 2. 8.
백준 스타트와 링크 /*먼저 팀을 나눕니다. 123 456 이면 123 / 456 팀 이렇게 말입니다.비지트를 해서 111 000 이렇게 됬을 경우에 111 의 합을 구하는 것을 구현해보도록 하겠습니다.인덱스 처리와 그런것들을 명확히 할 것. */#include #include using namespace std; #define SIZE 21int map[SIZE][SIZE];int visit[SIZE];int n;int team_one;int team_two;int minVal=INT8_MAX; void problemIn() {cin >> n;for (int i = 0; i > map[i][j];}}} void dfs(int pos, int .. 2018. 2. 8.
백준 치즈2 /*모눈종이 얇은 ㄴ치즈. 엔은 세로 격자의 수 , 엠은 가로 격자의 치즈는 냉동 보관실내온도에 공기 접 4변 중에 적어도 2변 이상이 실내온도의 공기와 접촉한 것은정확히 한시간만에 녹습니다. 따라서 아래모양 치즈라면 시로 치즈 격자는 한시간 후에 사라짐.오께이 그럼 삭제할때 조건이 맵은 1이고 주변 동서남북을 돌렸을때 0,1,2,3 중에2개 이상이 0이면 삭제되도록 erase 하는 부분만 다시 해주면 됩니다. 오께이 그럼 다시 작성해보도록 하겟습니다. 체크가 1이면 이제 그 x,y 맵에서 x,y 주변에 동서남북 돌렸을 때 0이 2개 이상이면 지우면 됩니다.*/ #include #include #define SIZE 10using namespace std; int map[SIZE][SIZE];int ch.. 2018. 2. 8.