Algorithm 36

[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

[SWEA] 2806. N-Queen

[URL] https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7GKs06AU0DFAXB&categoryId=AV7GKs06AU0DFAXB&categoryType=CODE&&& SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! www.swexpertacademy.com [풀이 과정] ​ 1. DFS & 백트래킹 문제 2. 유망성 검토를 통하여 완전 탐색 중 백트래킹을 통하여 check하는 설정 3. 퀸 놓는 방법 map[][] == 0 인 경우 놓을 수 있다. 4. 퀸 하나를 놓을 경우 -> map[][]에 안되는 부분(가로, 세로, 대각선1, 대각선 ..

Algorithm/SWEA 2019.04.10

[BOJ] - 2667. 단지번호붙이기

[URL] https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집들의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수 www.acmicpc.net [풀이 과정] *단순 재귀DFS 1. map[][] == 1인 곳 vector v에 push 2. v만큼 for문 돌며 재귀 dfs() 3. 첫번째 단지..

Algorithm/백준 2019.04.09