[Java][Programmers] 영어 끝말잇기
·
Coding Test/Programmers
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr📌 접근 방식끝말잇기 규칙을 기반으로, 주어진 단어 배열을 순서대로 순회하며 가장 먼저 규칙을 어긴 사람을 찾아내는 문제입니다. 규칙은 크게 세 가지입니다:이전 사람이 말한 단어의 마지막 글자로 시작해야 한다.이미 말한 단어를 반복해서 사용할 수 없다.단어는 두 글자 이상이어야 한다.단어를 순회하면서 위 조건 중 하나라도 위반하면, 그 시점에서 탈락한 사람의 번호와 그 사람이 몇 번째 차례에서 탈락했는지를 계산해 반환하면 됩니다.PASS CODEimport java.util.*;class Solution { public int[] solution(in..
[Java][Programmers] N개의 최소공배수
·
Coding Test/Programmers
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 📌 접근 방식주어진 정수 배열의 모든 원소에 대해 최소공배수(LCM, Least Common Multiple) 를 구하는 문제입니다. 두 수의 최소공배수는 (a * b) / 최대공약수(GCD) 공식을 이용해 계산할 수 있으며, 이 공식을 n개의 수에 확장해서 적용하였습니다.우선 배열의 첫 번째 원소와 두 번째 원소의 최소공배수를 구한 뒤, 그 결과를 세 번째 원소와 다시 최소공배수를 구하는 방식으로 반복적으로 누적 계산하면, 전체 배열의 최소공배수를 구할 수 있습니다. 이처럼 여러 수의 최소공배수를 구할 때는 이전까지의 최소공배수와 다음 수 간의 최소공배..
[Java][Programmers] 귤 고르기
·
Coding Test/Programmers
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr📌 접근 방식이 문제는 주어진 귤 배열에서 k개의 귤을 선택할 때, 가능한 한 서로 다른 귤의 크기 수를 최소화하는 것이 핵심입니다. 처음 문제를 접했을 때 단순히 많이 나온 귤부터 고르면 될 것 같았지만, 이를 코드로 효율적으로 구현하는 과정에서 몇 가지 고민이 필요했습니다.먼저, 귤의 크기별로 몇 개씩 있는지 세기 위해 HashMap을 사용했습니다. 배열을 순회하면서 각 귤 크기를 key로, 해당 크기의 개수를 value로 저장하면 크기별 빈도수를 빠르게 파악할 수 있습니다.그다음 단계는 이 빈도수를 기준으로 내림차순 정렬하는 것이었습니다. 개수가 많은..
[Java][Programmers] 점프와 순간 이동
·
Coding Test/Programmers
📌 접근 방식 1️⃣ K 칸만큼 점프하는 방법2️⃣ 순간이동을 통해 현재 위치의 두 배로 이동하는 방법👉🏻 점프는 건전지 사용량을 소모하지만 순간이동은 건전지 사용량이 소모되지 않기 때문에, 건전지 사용량을 최소화하려면 순간이동을 최대한 활용하는 것이 중요이 문제를 해결하는 핵심 아이디어💡는 주어진 거리 N을 이진수로 표현했을 때, 1이 있는 비트의 개수를 세는 것입니다.➡️ 1이 있는 비트는 반드시 점프를 해야만 하는 위치이므로, N의 이진수 표현에서 1이 몇 번 나오는지를 세면 최소 점프 횟수, 즉 건전지 사용량을 알 수 있습니다. PASS CODEimport java.util.*;public class Solution { public int solution(int n) { ..