728x90 sw9 [SWEA] [자바] 1953. 탈주범 검거 문제 출처 swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpLlKAQ4DFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 풀이 접근 ㆍ 파이프 리스트 정리 ※ 상 : 0 , 하 : 1 , 좌 : 2 , 우 : 3 - 1번은 상하좌우 : "0123" - 2번은 상하 : "01" - 3번은 좌우 : "23" - 4번은 상우 : "03" - 5번은 하우 : "13" - 6번은 하좌 : "12" - 7번은 상좌 : "02" ㆍ 현재 탈주범의 위치를 시작으로 BFS탐색 시작 ※ BFS 탐색 시 소요 시간을 기준으로 L까지 잘.. 2021. 4. 6. [SWEA] [자바] 1949. 등산로 조성 문제 출처 swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PoOKKAPIDFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 풀이 접근 ㆍ 가장 높은 봉우리를 리스트에 저장 ㆍ 모든 지도의 위치에서 1부터 K까지 등산로를 깎음 ㆍ 저장해둔 가장 높은 봉우리에서 출발해서 가장 낮은곳 까지 이동하는 거리를 BFS로 체크 ㆍ 가장 멀리 이동한 거리를 저장하고 최대값 산출을 위해 비교 후 출력 2. 소스코드 github.com/Choi-JinYeong/Solve_Alg/tree/master/Solve_Algs_SWEA/src/.. 2021. 4. 4. [SWEA] [자바] 5656. 벽돌 깨기 문제 출처 swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRQm6qfL0DFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 풀이 접근 ㆍ 벽돌을 떨어뜨릴 수 있는 경우의 수를 순열로 산출 ㆍ 순열에 맞추어 벽돌 깨기 시작 - 순열로 뽑아낸 가로 위치에서 처음으로 만나는 벽돌세로 위치 산출 - 만약 세로에 깰 벽돌이 없으면 스킵 ㆍ 있으면 연쇄작용으로 부심 - BFS이용해서 부심. 탐색 시 부시는 벽돌의 숫자-1만큼 반복해서 상하좌우 탐색해야 됨 - 부실 수 있는 벽돌의 경우 따로 배열을 활용해서 체크 ㆍ 부실 수 있는.. 2021. 4. 3. [백준] [자바] 3190번 : 뱀 출처 : www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 1. 풀이 접근 ㆍ 현재 바라보는 방향으로 이동 (8:상, 6:우, 4:좌, 2:하) ※ 아직 좌표는 업데이트하기 전! 앞으로 향할 위치에 대해서 다른 변수를 이용해 저장 ㆍ 지도(범위 안에 있는지) 체크 ==> flag1 ㆍ 뱀이 너무 길어서 몸끼리 부딛쳤는지 확인 ==> flag2 ㆍ 조건문 확인 1) flag1 == true && flag2 == true - 머리가 있는 위치에 사과가 있는지 확인 == .. 2021. 4. 1. [백준] [자바] 17144번 : 미세먼지 안녕! 문제 출처 www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 1. 풀이 접근 ㆍ 미세먼지 확산 ※ 미세먼지 확산 할 때 옆에 있는 칸이 서로 미세먼지가 있어도 각각이 확산되면서 서로 영향을 끼침 - 그래서 각각에 대한 값을 구한다음에 새로운 배열에 저장해서 보관하고 있다가 모든 프로세스가 끝나면 원래 배열에 덮어 씌우는 방식으로 해결 ㆍ 미세먼지 청정 - 입구에서부터 한칸씩 밀려서 회전 후 되돌아와 없어짐, 각각의 위치에 맞춰서 배열 회전 시킴 ※ 회전할 때.. 2021. 3. 29. [백준] [자바] 16236번 : 아기 상어 문제 출처 www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 1. 풀이 접근 ㆍ 현재 먹이를 먹을 수 있는지 확인 ( 먹이 못 먹을 경우 종료 후 시간 출력 ) ㆍ 현재 위치로 부터 가장 가까운 먹이 찾기 (BFS 탐색) - 나보다 큰 먹이는 지나가지 못함 ( 벽 같은 역할 ) - 나의 크기와 같거나 작으면 지나 갈 수 있음 ※ 물고기를 현재 크기 만큼 먹어야 크기 성장함. Ex. 상어 크기 3 -> 3번먹어야 4로 진화 ㆍ 가장 가까운 곳에 먹을 수 .. 2021. 3. 26. [백준] [자바] 10250번 : ACM 호텔 문제 출처 www.acmicpc.net/problem/10250 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 1. 풀이 접근 ㆍ 배열로 호수를 매핑해서 접근한다. ㆍ 호수가 604, 1010호 처럼 중간에 0이들어가거나 1자리로 구성될 경우에 대해서 예외처리 해주면 난이도는 굉장히 쉬운 문제이다. ㆍ 구현할 때 나머지 ( % )를 사용해서 구할 경우 나머지가 0으로 떨어지는 경우에 대해서 예외처리가 필요하다. 2. 소스코드 github.com/Choi-JinYeong/Solve_Alg/tree/master.. 2021. 3. 26. [백준] [자바] 16234번 : 인구 이동 문제 출처 www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 1. 풀이 접근 ㆍ 유니온으로 나눌 구역을 찾음. 이 때 기준은 서로의 차이가 L보다 크고 R보다 작아야 함. ※ 이 때 처음 찾는곳을 기준으로 DFS로 같은 구역을 지정해야 함. ㆍ 구역이 찾아지면 구역의 평균값을 구해서 같은 구역일 경우 값 덮어쓰기. ㆍ 더이상 반복 할 수 없을 때 까지 수행 2. 소스코드 github.com/Choi-JinYeong/Solve_Alg/tree/ma.. 2021. 3. 25. [백준] [자바] 15686번 : 치킨 배달 문제 출처 www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 1. 풀이 접근 ㆍ 치킨집 위치와 고객집들의 위치를 각각 저장 ㆍ 치킨집 개수 N 중 M개 만 남겼을 때의 경우의 수 추출 ( NCM의 조합 개수 만큼 나옴 ) ㆍ 각 고객집 위치에 따라 M개의 치킨집 중 가장 최소 거리 추출해서 배열에 쭉 저장 (이 배열은 각 고객집 인덱스와 매칭됌) ㆍ 각 고객집 최소거리값을 더해서 전체 최소값이랑 비교 후 출력 2. 소스코드 github.c.. 2021. 3. 23. 이전 1 다음 728x90