[5650. [모의 SW 역량테스트] 핀볼 게임 URL] 1. 입력으로 주어지는 N X N 핀볼 게임판에서, 빈공간에서 4방향 (동, 서, 남, 북)으로 공을 굴려가며 최대 값을찾는다. 2. 이 문제에서 탐색 중단 조건은 블랙홀(-1)을 만났거나, 처음 시작 위치로 되돌아오는 경우이다. 3. N X N의 핀볼 게임판의 가장자리는 "벽"이라고 가정한다. 즉, N이 아닌 N+2만큼의 2차원배열을 선언하고 가장자리에 "5" 짜리 블럭을 세운다. 4. 공을 굴리는 도중, 블럭을 만났다면 방향을 바꿔주고, 웜홀을 만났다면 다른 웜홀 위치로 이동시킨다. [전체 소스코드]1234567891011121314151617181920212223242526272829303132333435363738394041424344454..
[알고스팟 TSP1 URL] 1. 이 문제는 완전탐색으로 풀었습니다. N개의 도시가 있을 때, 출발 도시를 제외한 나머지 도시들을 방문하는경우의 수는 (N-1)!입니다. 문제에서 N의 입력이 8이하이므로 완전탐색으로 풀어도 시간초과가 나지 않습니다. 2. 시작 도시를 정한 후, 그 도시로부터 순회를 시작합니다. 모든 도시를 돌았다면 최소 값을 갱신해줍니다. [소스 코드]123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384import java.io.BufferedReader;i..
[알고스팟 게임판 덮기 링크] 1. L자 모양의 블럭으로 게임판을 덮는 경우의 수를 구하는 문제인데, 이는 L자 모양의 블럭으로 게임판을덮는 순서와는 상관이 없다. 즉, 순서가 어떻게 되든지간에 게임판을 덮는 모양이 같다면 하나의 경우로 취급한다. 2. 맨 위쪽, 맨 왼쪽부터 게임판이 덮이지 않은 위치를 찾는다. 그리고 그 위치에서 부터 L자 모양의 블럭을 놓는다. - 여기서, 이전의 칸들은 이미 블럭이 덮여있다고 가정해야한다. 즉, L자 모양의 블럭을 해당 위치에 놓을 때,아래쪽 혹은 오른쪽으로만 뻗어나가게 해야한다. - 소스 코드에서, coverDir[][][] 배열을 참고하기 바란다. 3. 해당 위치에서, L자 모양의 블럭을 둘 수 있는지 없는지를 따로 확인하지 않는다. Map의 범위를 벗어나지 않..
[알고스팟 소풍 URL] 완전 탐색 문제입니다. 1. 아직 짝을 이루지 못한 기준 학생을 찾는다. 학생을 찾을 때에는 맨 앞쪽의 학생부터 찾는다. - (0, 1) 학생과 (1, 0) 학생이 짝을 이루는 경우는 같은 상황이기 때문에, 중복을 피해야 한다. 2. 짝을 이루지 못한 기준이 되는 학생을 찾았으면, 그 학생과 짝을 이룰 다른 학생을 찾는다.3. 두 명의 학생이 짝을 이뤘으면, count(짝을 이룬 학생 수)를 2 증가시켜 다시 DFS 탐색을 시작한다. [소스코드] 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667import ..
[SWEA 2112. [모의 SW 역량테스트] 보호 필름 URL]1. 총 3가지의 경우를 생각할 수 있다.1) 현재 행을 그대로 두는 경우2) 현재 행에 A약을 투입하는 경우3) 현재 행에 B약을 투입하는 경우 2. 위의 세 가지 경우를 생각하며 DFS 탐색을 진행한다.DFS 매개변수로는, 이전 필름의 상태(prev), 시약을 투입한 횟수(numOfInject), 필름의 두께(depth)이다.현재 행을 그대로 두는 경우에는 numOfInject의 수는 변함이 없고, 현재 행에 약을 투입하는 경우에만 1을 증가시켜 DFS탐색을 진행한다. 현재 행(depth)에 시약을 투입할 경우 필름의 상태를 변경한 뒤, DFS의 매개변수로넘겨준다. 3. 성능검사 통과isPossible() 메소드를 참고하기 바란다. [소..
[SWEA 1949. [모의 SW 역량테스트] 등산로 조성 URL]https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PoOKKAPIDFAUq&categoryId=AV5PoOKKAPIDFAUq&categoryType=CODE 1. 최대값을 찾는다.2. 최대값부터 DFS 탐색을 시작한다.3. DFS는 등산로의 길이와 공사 여부를 매개변수로 받는다.4. DFS 탐색시, 현재 위치와 다음 위치의 높이를 비교한다. - 현재 위치가 다음 위치보다 높다면, 다시 DFS 메소드를 호출한다. 여기서 주의할점은 다음 탐색시, 공사여부는 현재 공사여부의 값을 매개변수로 받는다. (현재 공사여부 = 다음 공사여부) - 현재 위..
[SWEA 1953. [모의 SW 역량테스트] 탈주범 검거 URL]https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpLlKAQ4DFAUq&categoryId=AV5PpLlKAQ4DFAUq&categoryType=CODE 이번 문제는 쉬운 BFS문제이지만, 현재 칸에서 다음 칸으로 넘어갈 수 있는지에 대한 조건이 많다.아래 그림을 보자.현재 방문한 파이프가 1번이라고 가정해보자. 그럼 1번 파이프에서 방향에 따라 다음 파이프로 이동할 수 있는지, 없는지가 결정된다. 현재 파이프가 1번이고 이동 방향이 동쪽이라고 할 때, 1번 파이프에서 이동할 수 있는 다음파이프는 1번, 3번, 6번, 7번 파이프가 된다..
[4012. [모의 SW 역량테스트] 요리사 URL]https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIeUtVakTMDFAVH&categoryId=AWIeUtVakTMDFAVH&categoryType=CODE 백준의 스타트와 링크 문제와 100% 같은 문제이다.2019/03/09 - [알고리즘 문제/백준(BOJ)] - [백준 14889번] 스타트와 링크 (JAVA) [소스 코드]123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869..
- Total
- Today
- Yesterday
- 큐
- 알고리즘
- 알고스팟
- BFS
- 삼성
- 나무 재테크
- 힙
- 우선순위 큐
- 연산자 끼워넣기
- 트리
- DFS
- 중간값
- 힙정렬
- 영역 구하기
- 배열
- 탐색
- 최소힙
- 시뮬레이션
- 최대힙
- 자바
- 구현
- 탈주범 검거
- 14888
- 브루트포스
- 리스트
- SWEA
- 구슬 탈출2
- 정렬
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |