전체 글 58

[BOJ] - 2178. 미로 탐색

[URL] https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net [풀이 과정] * BFS queue 최단거리 1. input() 2. bfs(x, y) 출발 위치(x, y) (1) 큐에 push (2) visited[x][y] = true (3) dist[][] 큐가 빌때 까지 --> x, y에서 더이상 갈 곳이 없을 경우 종료 큐에서 현재 위치(x, y) pop 다음 위치 (nx, ny) 4방향 탐색(상하좌우) --> [조건 1] [조건 2] 둘 다 만족 하는 경우 가능하면 ??..

Algorithm/백준 2019.06.20

[SWEA] - 1206. [S/W 문제해결 기본] 1일차 - View

[URL] https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh&categoryId=AV134DPqAA8CFAYh&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! www.swexpertacademy.com [풀이 과정] *시뮬레이션 1. 각 테스트케이스에서 0 부터 len까지 가능한 범위에 있는지 확인 2. 범위에 있다면 index기준 좌2개 우2개 총 4개를 tempArr에 저장 3. tempArr 4개 오름차순으로 정렬 후 , max값 arr[index] 비교 4. arr[index] > m..

Algorithm/SWEA 2019.06.11

[BOJ] - 2309. 일곱 난쟁이

[URL] https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net [풀이 과정] 1. 난쟁이 9개 오름차순 정렬 2. 9개 중 2개 선택 (재귀 활용 완전 탐색) 3. 9개의 합에서 2개의 합을 빼서 100이면 정답 4. 7개 난쟁이 정답 오름차순으로 출력 [소스 코드] 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758..

Algorithm/백준 2019.06.11

[BOJ] - 14503. 로봇 청소기

[URL] https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 벽 또는 빈 칸이다. 청소기는 바라보는 방향이 있으며, 이 방향은 동, 서, 남, 북중 하나이다. 지도의 각 칸은 (r, c)로 나타낼 수 있고, r은 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로 부터 떨어진 칸의 개수이다. 로봇 청소기는 다음 www.acmicpc.net [풀이 과정] * 단순 시뮬레이션 [소스 코드] 123456789101112131415161718192021222324..

Algorithm/백준 2019.04.13

[SWEA] - 1767. 프로세서 연결하기

[URL] https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV4suNtaXFEDFAUf SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! www.swexpertacademy.com [풀이 과정] * DFS 1. 가능한 최대 코어 개수를 구한다. DFS1(); 2. 가능한 최대 코어 개수일때 연결 가능한 전선 개수 중 최소값 구한다. DFS2(); [소스 코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ..

Algorithm/SWEA 2019.04.13

[BOJ] - 16234. 인구 이동

[URL] https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모든 나라는 1×1 크기이기 때문에, 모든 국경선은 정사각형 형태이다. 오늘부터 인구 이동이 시작되는 날이다. 인구 이동은 다음과 같이 진행되고, 더 이상 아래 방법에 의해 인구 이동이 없을 때까지 지속된다. 국경선을 공유하는 두 나라의 인구 차이가 L명 www.acmicpc.net [풀이 과정] * DFS (기존 단지번호 붙이기 문제와 유사) 1. 그룹화가 우선 --> 그룹이 생기지 않으면 종료 2. ..

Algorithm/백준 2019.04.12

[BOJ] - 14499. 주사위 굴리기

[URL] https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도에 쓰여 있는 수가 북쪽부터 남쪽으로, 각 줄은 서쪽부터 동쪽 순서대로 주어진다. 주사위를 놓은 칸에 쓰여 있는 수는 항상 0이다. 지도의 각 칸에 쓰여 있는 수는 10을 넘지 않는 자연수 또는 0이다. 마 www.acmicpc.net [풀이 과정] * 시뮬레이션 1. 4방향에 따라 어떤식으로 주사위의 평면도가 바뀌는지 설정 (dir == 1~ 4) ..

Algorithm/백준 2019.04.11

[BOJ] - 14500. 테트로미노

[URL] https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 꼭짓점끼리 연결되어 있어야 한다. 즉, 변과 꼭짓점이 맞닿아있으면 안된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위에 테트로미노 하나를 놓으려고 한다. 종이는 1×1 크기의 칸으로 나누어져 www.acmicpc.net [풀이 과정] *단순 시뮬레이션 1. map[][] i, j에 관해 생긴 모양(type)에 대해 가능한지 체크 테트리스 모..

Algorithm/백준 2019.04.11

[BOJ] 14502. 연구소

[URL] https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다. 일부 칸은 바이러스가 존재하며, 이 바이러스는 상하좌우로 인접한 빈 칸으로 모두 퍼져나갈 수 있다. www.acmicpc.net [풀이 과정] * 재귀, DFS, BFS 1. 재귀 DFS로 3개의 벽 선정 2. 3개 벽 세워 두고 바이러스(map[][] =..

Algorithm/백준 2019.04.10