끄적끄적 코딩
[IT] 인공지능
IT 2019. 11. 12. 19:04

인공지능 기계 혹은 시스템에 의해 만들어진 지능을 의미. 인간이 지닌 지적 능력을 인공적으로 구현한 것 머신러닝 머신러닝은 인공지능의 하위 분야 기계가 직접 데이터를 학습함으로써 그 속에 숨겨진 일련의 규칙성을 찾음 우리가 가지고 있는 사례 형식의 데이터를 컴퓨터가 학습해, 그를 기반으로 새 데이터를 평가, 예상, 활용가능케 함 딥러닝 딥러닝이란 기계학습의 일부로 기계학습과 대부분의 것들이 매우 비슷하지만 일반적인 기계학습과 구별되는 두가지 큰 특징을 뽑으면 다음과 같다. 1. 데이터의 특징을 사람이 추출하지 않는다. (데이터 전체를 학습시킨다) 2. 주로 인공신경망 구조를 사용하여 학습한다. 인공 신경망 뇌에서 수많은 뉴런들이 모여 신호를 전달하는 과정을 모델링하여 만든 것 머신러닝 지도학습 : 데이터..

article thumbnail
[C++] 백준 5022번 연결
알고리즘 2019. 11. 12. 16:23

두 선을 교차하지 않고 최단거리로 연결할 수 있는지 찾는 문제입니다. BFS를 이용해서 A선에 대한 최단거리를 찾습니다. 그리고 그 경로를 체크해줍니다. (각 점은 통과할 수 없음) B선에 대한 최단거리를 찾습니다. 이 때 A선이 이동하는 경로를 피해서 탐색해줍니다. 그리고 반대로 B선에 대한 최단거리를 구하고 A선에서 B선이 이동하는 경로를 피해서 탐색해줍니다. 이 두 결과값에 더 짧은 값을 출력합니다. 만약 둘다 실패하면 불가능을 출력합니다. #include #include #include #include #include #define MAX 987654321 using namespace std; bool flag; int n, m; int result; int dist[2]; int mx[4] = ..

article thumbnail
[C++] 백준 9328번 열쇠
알고리즘 2019. 11. 12. 02:57

상근이는 소문자 열쇠를 가지고 대문자 문을 열수있습니다. 이 때 '$' (문서) 를 몇개 훔칠 수 있는지 구하는 문제입니다. BFS를 이용해서 풀었으며, 밖에서 들어오는 것이므로, 각 테두리 부분에 접근 가능하도록 하였습니다. 열쇠가 있으면 문을 열고, 문을 열 수 없는 경우 문의 위치를 기억해둡니다. 그리고 해당 열쇠를 먹으면 그 문의 위치를 큐에 넣어줍니다. #include #include #include #include #include using namespace std; int ts; int n, m; int result; string s; int mx[4] = { 0, 0, 1, -1 }; int my[4] = { 1, -1, 0, 0 }; bool visit[110][110]; bool key..

article thumbnail
[C++] 백준 6087번 레이저 통신
알고리즘 2019. 11. 11. 23:43

C에서 C까지 거울을 몇개 쓰면 레이저로 닿는지 찾는 문제입니다. BFS로 문제를 해결했습니다. queue q 를 사용해서 정보를 저장했습니다. y좌표, x좌표, 최근방향, 거울사용횟수 C에서 상하좌우 방향으로 BFS를 진행하였고 같은 곳을 탐색하는 경우를 위해 visit를 통해 체크해주었습니다. visit는 현재 거울사용 횟수도 저장하고 있으며, 이는 더 많은 거울을 사용해서 현재 위치를 탐색 것과 재방문을 방지 할 수 있습니다. 그리고 더 적은 거울을 사용한 경우에는 갱신되며, 이를통해 최적의 거울수를 체크할 수 있습니다. 주의해야할 점은 1. 시작점에서 상하좌우로 전부 큐에 넣어서 시작 2. visit배열을 통해 거울사용 수가 더 작은 경우에만 탐색가능 3. 도착지에 도달하더라도 BFS 종료를 하면..

article thumbnail
[C++] 백준 6593번 상범 빌딩
알고리즘 2019. 11. 11. 20:54

BFS로 문제를 해결했습니다. S지점에서 E지점으로 탈출을 해야하는데 특징으로는 3차원 형태인 점 입니다. 이동은 오른쪽, 왼쪽, 앞, 뒤, 위, 아래로 인접한 6가지 방향으로 이동할 수 있습니다. 이미 이동한 위치는 visit로 방문처리해주고 6가지 방향을 BFS를 통해서 탐색해서 성공하면 이동횟수를 출력하고 실패하면 메시지를 출력해주었습니다. #include #include #include #include #include #define MAX 987654321 using namespace std; int main(int argc, char* argv[]) { bool flag = false; int answer = 0; int L, R, C; int sz, sy, sx; int ez, ey, ex; ..

article thumbnail
[C++] 백준 14442번 벽 부수고 이동하기 2
알고리즘 2019. 11. 11. 16:35

BFS를 사용해서 문제를 풀었습니다. visit배열에 벽을 부순 횟수를 저장하며 탐색하며, 벽을 부순 횟수가 더 적게 방문하면 그 값으로 변환됩니다. 그리고 더 크면 접근하지 못하므로, 재방문도 막으며, 더 최적일 때만 접근이 가능하게 됩니다. #include #include #include #include #include #define MAX 987654321 using namespace std; bool flag = false; int n, m, k; int countNum = MAX; int map[1010][1010]; int visit[1010][1010]; int moveX[4] = { 0, 1, 0, -1 }; int moveY[4] = { 1, 0, -1, 0 }; queueq; void ..

article thumbnail
[C++] 백준 1600번 말이 되고픈 원숭이
알고리즘 2019. 11. 11. 01:17

원숭이가 0,0 에서 H,W 까지 이동할 수 있는지 찾고 이동횟수를 출력하는 문제입니다. 원숭이는 K번 만큼 체스의 나이트처럼 이동할 수 있습니다. 나이트처럼 이동하는 과정에서 배열의 -1 또는 -2를 접근하지 않게 하기 위해서 격자판에 관한 입력값들을 2, 2부터 주었습니다. 나이트의 움직임으로 움직일 수 있는 경우 그 위치의 visit를 나이트 사용횟수 만큼 입력해줍니다. 그리고 다시 위의 위치를 방문할 때 visit의 나이트 사용횟수보다 적다면 탐색이 가능합니다. 이미 나이트방향으로 이동이 다 썼다면 상하좌우로만 움직일 수 있으며, 끝 지점에 도달하면 이동횟수를 출력하고, 움직일 수 있는 곳이 없으면 -1을 출력합니다. #include #include #include #include #include..

article thumbnail
[C++] 백준 4179번 불!
알고리즘 2019. 11. 10. 02:27

BFS로 문제를 해결했습니다. 지훈이가 불을 피해서 탈출할 수 있는지 찾는 문제입니다. 불은 1분마다 상하좌우로 번지며, 지훈이는 상하좌우로 이동 할 수 있습니다. 불이 번지는 곳을 '#' (벽)으로 만들어주었고 지훈이는 방문한 곳을 다시 방문하지 않습니다. 최종적으로 밖으로 나오게 되는 경우 카운트를 출력하고, 벽에 막혀서 이동할 수 있는 곳이 없게되면 IMPOSSIBLE을 출력했습니다. #include #include #include #include #include using namespace std; bool flag = false; int n, m; int turn = 1; int result = 0; bool visit[1010][1010]; char map[1010][1010]; int mov..

검색 태그