본문 바로가기

728x90

프로그래머스(Java)/Level 0

(93)
[프로그래머스] 평행 코드 힌트두 선이 평행하다는 말은 같은 기울기를 가지고 있다는 의미입니다. 즉, 기울기를 구하는 문제입니다.기울기 계산:주어진 두 점 사이의 기울기를 계산하는 함수입니다. 기울기는 두 점의 y좌표 차이를 x좌표 차이로 나누어 계산됩니다.기울기 계산 시, double 형을 사용하여 정확한 비교를 위해 형 변환을 적용합니다.평행 여부 확인:주어진 4개의 점이 주어졌을 때, 각각의 두 쌍의 선분이 평행한지를 확인합니다. 이때, 세 가지 경우의 선분 쌍을 고려합니다.두 선분의 기울기가 같으면 해당 선분들은 평행하므로, 이때 1을 반환합니다.결과 반환:모든 경우의 선분 쌍을 비교한 후에도 평행하지 않으면 0을 반환합니다.  정답은 더보기 클릭더보기class Solution { // 주어진 네 개의 점이 이루..
[프로그래머스] 삼각형의 완성조건 (2) 코드 힌트규칙 찾기:주어진 두 변이 삼각형을 형성할 수 있는 경우, 세 번째 변의 길이는 특정 범위 내에서 가능해야 합니다.예를 들어, 주어진 변의 길이가 [11, 7]인 경우를 생각해봅시다.11이 가장 긴 변일 때:삼각형의 성질에 따르면, 가장 긴 변의 길이는 나머지 두 변의 길이의 합보다 작아야 합니다.이 경우 세 번째 변의 길이 x는 11 > x > 4이어야 하므로, 가능한 변의 길이는 5, 6, 7, 8, 9, 10으로 6개의 경우가 가능합니다.max 주어진 변이 가장 긴 변이 아닐 때:주어진 변 [11, 7]이 가장 긴 변이 아닐 때, 세 번째 변이 가장 긴 변이 됩니다.이 경우, x = 12, 13, 14, 15, 16, 17이 가능합니다. 역시 6개의 경우가 있습니다.max + min > n..
[프로그래머스] 구슬을 나누는 경우의 수 코드 힌트두 가지 방법을 사용할 수 있습니다:BigInteger 사용하기BigInteger 클래스는 매우 큰 숫자를 안전하게 처리할 수 있습니다. 예를 들어, 30! (30의 팩토리얼)을 계산할 때, int 또는 long의 범위를 초과할 수 있습니다. BigInteger는 이러한 경우에도 안전하게 숫자를 관리할 수 있는 클래스입니다.제한 사항에 따라 balls와 share가 30까지 갈 수 있으므로, 팩토리얼 계산 시 BigInteger를 사용하여 계산할 수 있습니다.단점으로는 조작을 하기 힘들다는 단점이 있습니다.BigInteger 없이 풀기이 문제는 조합 공식을 사용해 풀 수 있습니다. 조합 공식은 n! / ((n-m)! * m!)입니다. 이를 두 단계로 나누어 풀 수 있습니다.첫 번째 단계는 n! ..
[프로그래머스] 캐릭터의 좌표 코드 힌트좌표 제한 계산board 배열을 사용하여 이동 범위를 계산합니다. board[0]과 board[1]는 보드의 크기를 나타내며, 이를 바탕으로 보드의 중앙에서 이동할 수 있는 최대 범위를 계산합니다. 이 계산은 좌표의 제한을 결정하는 데 필요합니다.키 입력 처리keyinput 배열을 순회하며 각 키 입력에 따라 좌표를 업데이트합니다. 각 방향(왼쪽, 오른쪽, 위, 아래)에 대한 조건을 체크하고, 이동 가능한 범위 내에서 좌표를 조정합니다.좌표 업데이트각 방향으로 이동 시 현재 좌표가 설정된 범위 내에 있는지 확인합니다. 범위를 벗어나지 않도록 조건문을 사용하여 좌표를 조정합니다.  정답은 더보기 클릭더보기class Solution { public int[] solution(String[] k..
[프로그래머스] 영어가 싫어요 코드 힌트index와 동일한 영어 숫자를 저장한 배열 생성배열 numArr를 생성하여 인덱스와 동일한 숫자를 영어로 저장합니다. 예를 들어, numArr[0]은 "zero", numArr[1]은 "one" 등으로 설정합니다. 이 배열을 사용하여 숫자를 나타내는 문자열을 찾아내고 교체할 수 있습니다.replaceAll() 사용하기numbers 문자열에서 각 영어 숫자를 대응하는 숫자로 교체합니다. replaceAll() 메서드를 사용하여 문자열 내의 각 영어 숫자를 해당 숫자로 변환합니다. 예를 들어, "zero"를 "0"으로, "seven"을 "7"로 바꿉니다.Long 타입으로 변환모든 영어 숫자를 숫자로 변환한 후, 최종적으로 numbers 문자열을 long 타입으로 변환합니다. Long.parseLo..
[프로그래머스] 잘라서 배열로 저장하기 코드 힌트배열 크기 계산문자열의 길이와 주어진 크기 n을 이용해 결과 배열의 크기를 결정합니다. 문자열의 길이를 n으로 나눈 값을 기준으로 배열 크기를 결정합니다. 나머지가 있는 경우, 배열 크기는 하나 더 추가합니다.문자열을 잘라서 배열에 저장문자열을 n 길이로 잘라서 배열에 저장합니다. 문자열의 길이보다 남은 부분이 짧을 수 있으므로, 마지막 조각은 남은 모든 문자열을 포함합니다.결과 배열 반환잘라진 문자열 조각들을 배열에 저장한 후, 배열을 반환합니다.   정답은 더보기 클릭더보기class Solution { public String[] solution(String my_str, int n) { // 문자열을 n 길이의 조각으로 나누기 위해 결과 배열의 크기 결정 //..
[프로그래머스] 소인수분해 코드 힌트소인수 분해 사용주어진 정수 n을 소인수로 분해하여 n을 나눌 수 있는 최소의 소수를 찾습니다. 이를 통해 n을 작은 소수로 나누면서 반복하여 소인수를 찾아냅니다.중복 제거와 정렬List를 사용하여 중복된 소인수를 제거하면서 소인수를 저장합니다.Set을 사용하여 자동으로 중복을 제거하며, 마지막에 배열로 변환한 후 정렬하여 결과를 반환합니다.반복문과 조건문 활용while 반복문을 사용해 n이 1이 될 때까지 소인수 분해를 계속합니다.for 반복문을 사용해 n을 나눌 수 있는 가장 작은 소수를 찾아내어 n을 나눕니다.결과 배열 생성List를 배열로 변환하여 결과를 반환합니다.Set을 배열로 변환하고 정렬한 후 반환합니다.  정답은 더보기 클릭더보기import java.util.*;class Sol..
[프로그래머스] 직사각형 넓이 구하기 코드 힌트좌표 분석주어진 점들의 좌표를 통해, 최소 x값 (x1)과 최대 x값 (x2), 최소 y값 (y1)과 최대 y값 (y2)을 찾습니다.x1, x2, y1, y2는 각각 사각형의 왼쪽, 오른쪽, 아래쪽, 위쪽 경계가 됩니다.사각형의 넓이 계산사각형의 넓이는 (x2 - x1)과 (y2 - y1)를 곱하여 구합니다.이 값은 좌표 배열에서 가장 큰 x좌표와 가장 작은 x좌표의 차이, 그리고 가장 큰 y좌표와 가장 작은 y좌표의 차이를 사용하여 사각형의 넓이를 계산하는 것입니다. 정답은 더보기 클릭더보기class Solution { public int solution(int[][] dots) { // 초기 값으로 최대값과 최소값을 설정 int x1 = Integer.MAX_V..

728x90