본문 바로가기

분류 전체보기105

[SW Expert Academy Java] 1247 S/W 문제해결 응용 3일차 - 최적 경로 문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15OZ4qAPICFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 돌아오는 경로 중 가장 짧은 것을 찾아야 하기 때문에 최솟값을 구한다. 문제의 아래에 힌트가 있다. '모든 가능한 경로를 살펴서 해를 찾아도 좋다.'->순열로 문제를 해결해도 좋다. 고객의 수가 최대 10명이기 때문에, 시간복잡도가 최대 10!이 나온다. 따라서 순열로 풀이가 가능하다. 풀이방법 입력받은 후 순열을 구해준다. 뽑힌 값이 n이 된다면 count를 세어준다. count는 회사와 첫.. 2022. 9. 12.
[백준Java]2589 보물섬 문제 2589번: 보물섬 (acmicpc.net) 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net 기본적인 bfs문제였다. 한가지 주의해야할점은 한곳에서 bfs를 돌려주는 것이 아니라, 각 L마다 모두 bfs를 돌려줘야 한다는 것이었다. 풀이방법 x좌표, y좌표, count를 가지고 있는 Node를 만든다. 배열을 입력받고 L이 나올때마다 bfs 함수를 돌린다. 상, 하, 좌, 우를 확인하면서, nx>=0 && nx=0 && ny 2022. 9. 12.
[백준 JAVA]2206 벽 부수고 이동하기 문제 2206번: 벽 부수고 이동하기 (acmicpc.net) 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net bfs문제지만 벽을 부수는 경우를 생각해야하는 문제였다. 벽을 부수고 간 경우가 특정 위치에서 먼저 도달하지만 최종적으로 부수지 않고 간 경우가 더 빠를 수 있다는 반례가 있다. 이 반례를 고려해주지 않는다면 test case의 답은 나오지만 아래와 같은 문제는 해결할 수 없다. 6 4 0000 1110 1000 0000 0111 0010 정답: 9 이를 해결하기 위해 3차원.. 2022. 9. 12.
[백준 JAVA] 6603 로또 문제 6603번: 로또 (acmicpc.net) 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net 숫자 0이 나올때까지 집합 원소가 k개만큼 주어지고, 이중에서 6개의 숫자를 고르는 문제이다. 뽑는 순서가 중요하지 않기 때문에 조합을 사용한다. 풀이방법 0이 나올때까지 숫자를 입력받는다. 입력받은 숫자를 num배열에 넣는다. 뽑은 숫자를 넣을 배열 result를 선언한다. start부터 k까지 for문을 돌려, result에 num에 있던 값을 넣어준다. 재귀호출을 시용해 뽑은 숫자 이후숫자부터 다시.. 2022. 9. 6.