본문 바로가기

알고리즘49

자바 정렬하기 Comparable, Comparator는 둘다 객체를 비교하기 위해서 사용한다. 이 두 인터페이스를 사용한다면 우리가 원하는 기준을 만들어서 객체를 비교할 수 있게된다. 본질적으로 객체는 사용자가 기준을 정해주지 않는 이상 어떤 객체가 더 높은 우선순위를 갖는지 판단 할 수기 때문이다. 그렇다면 Comparable, Comparator 두개의 차이는 무엇일까? Comparable은 "자기 자신과 매개변수 객체를 비교" 한다. Comparator는 "두 매개변수 객체를 비교" 한다. 공식문서는 다음과 같다. [Comparable] docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html#method.summary Comparable (Java Platfo.. 2022. 9. 12.
[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.