본문 바로가기

Algorithm44

[Softeer] 나무 섭지 / Java 문제 출처https://softeer.ai/practice/7726 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai문제 풀이남우가 유령을 피해 목적지에 도달할 수 있는지의 여부를 판단하는 문제입니다. 남우와 유령이라는 두 종류의 움직이는 말이 있는 상황이므로각각을 위한 Queue를 마련하여 BFS를 수행하며 이동가능한 칸에 대해 걸리는 시간 정보를 탐색해나갑니다. 여기서 주의할 점은 남우가 유령에 잡히지 않아야 된다는 것입니다.따라서 canGoNamwoo() 메서드로 남우의 이동가능성을 파악할 때, 해당 칸에 대해 유령이 도달하는 시점과 남우가 도달하는 시점을 비교하는 것이 포인트입니다. 추가 설명은 코드의 흐름에 따라 주석으로 작성하였습니다.Java Codeimport java.i.. 2024. 6. 15.
[Softeer] 함께하는 효도 / Java 문제 출처https://softeer.ai/practice/7727 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai문제 풀이완전탐색으로 문제를 풀이해보았습니다.주어진 조건에 따르면 친구의 수가 최대 3 명이고 최대로 이동할 수 있는 횟수가 3 번뿐이기에 모든 경우의 수를 탐색해볼만 하다고 생각했습니다. 따라서 아래와 같은 순서에 따라 코드를 구성하였습니다.1. 순열(Permutation)로 각 친구가 움직일 수 있는 모든 경로(Route)를 구한다.2. 조합(Combination)으로 각 친구가 어떤 경로를 선택했는지에 대한 모든 경우의 수를 탐색하며 최대 수확량을 구한다. 추가적인 설명은 코드 내의 주석으로 작성하였습니다.Java Codeimport java.io.*;import .. 2024. 6. 11.
[CodeTree] 겹쳐지지 않는 두 직사각형 / Java https://www.codetree.ai/missions/2/problems/non-overlapping-two-rectangles/description 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 문제 접근 완전탐색 유형의 문제입니다. 서로 겹치지 않는 두 직사각형의 총합을 최대로 만드는 것이 목표인데요. 이리저리 짱구를 굴려봐도 알고리즘을 통해 효율적으로 최댓값을 구해낼 각이 보이지 않는군요. 완전탐색 할 마음을 먹었다면 그 다음은 '어떻게' 할 것이냐입니다. 저는 직사각형의 네 꼭짓점 중 두 꼭짓점을 통해 직사각형을 표현하는 방식을 선택했습.. 2024. 4. 10.
[프로그래머스]단어 변환 / 자바 (BFS/DFS 맛꿀마 문제) https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제는 DFS와 BFS 모두 풀이가 가능한 문제입니다. 먼저 문제의 요구사항을 살펴보면, 문자열 begin으로부터 문자열 target까지의 변환에 필요한 최소 변환 횟수를 구하는 것이 목표입니다. 단, 변환 조건은 한 번에 한 개의 알파벳만 변환이 가능하다는 겁니다. 즉, A에서 B로의 변환이 가능한 경우는 A와 B를 비교했을 때 한 글자를 제외하고 나머지 글자가 모두 같은 경우라고 생각할 수.. 2024. 3. 23.