본문 바로가기

728x90

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

(93)
[프로그래머스] 분수의 덧셈 코드 힌트분모와 분자의 계산:두 분수의 합을 구하기 위해 공통 분모를 사용합니다.분모는 denom1 * denom2로 계산합니다.분자는 numer1 * denom2 + numer2 * denom1로 계산합니다.기약분수로 만들기:분자와 분모를 최대공약수(GCD)로 나누어 기약분수로 만듭니다.GCD는 유클리드 호제법, 제귀함수, for문을 사용하여 계산합니다.GCD를 구하는 방법은 여기를 클릭하시면 됩니다.결과 배열:결과 배열 result에 기약분수의 분자와 분모를 저장하여 반환합니다. 정답은 더보기 클릭더보기class Solution { public int[] solution(int numer1, int denom1, int numer2, int denom2) { // 두 분모의 곱으로 ..
[프로그래머스] 배열 만들기 3 코드 힌트배열 크기 계산:주어진 구간의 길이를 계산하여 반환할 배열의 총 길이를 구합니다.intervals가 [[s1, e1], [s2, e2]] 형식으로 주어졌을 때, 반환할 배열의 크기는 (e1 - s1 + 1) + (e2 - s2 + 1)입니다.배열에 요소 추가:index 변수를 사용하여 반환할 배열에 순서대로 요소를 추가합니다.첫 번째 구간의 요소들을 추가한 후, 두 번째 구간의 요소들을 추가합니다.// index++를 활용하여 배열에 요소 넣기 예시// 크기가 10인 배열에 10~1까지 숫자 넣기int[] result = new int[10];int index = 0;for (int i = 10; i >= 1; i--) { result[index++] = i;}  정답은 더보기 클릭더보기c..
[프로그래머스] 특별한 이차원 배열 1 코드 힌트2차원 배열 생성:먼저, 주어진 크기 n에 맞는 n x n 크기의 2차원 배열을 생성합니다. 이 배열이 최종적으로 단위 행렬이 될 것입니다.반복문을 이용한 주대각선 설정:두 개의 중첩된 for 루프를 사용하여 배열의 모든 원소를 순회합니다.바깥쪽 루프는 행을, 안쪽 루프는 열을 나타냅니다.행과 열의 인덱스가 같은 경우, 즉 i == j일 때, 해당 위치는 주대각선에 해당합니다. 이 위치에 1을 설정합니다.그 외의 위치는 배열을 생성할 때 기본적으로 0으로 초기화되므로 별도로 설정할 필요가 없습니다.결과 반환:모든 원소를 설정한 후, 생성된 단위 행렬을 반환합니다.이 코드를 통해 주어진 크기 n에 맞는 단위 행렬을 생성할 수 있습니다. 각 원소가 0으로 초기화된 상태에서 주대각선의 원소만 1로 설..
[프로그래머스] 배열 만들기 2 코드 힌트정규 표현식을 사용한 방법:숫자를 문자열로 변환한 후, 정규 표현식을 사용하여 필터링합니다.정규 표현식 "^[^12346789]*$"는 '0'과 '5'만 포함된 숫자에 매칭됩니다. 즉, 숫자 문자열이 '1', '2', '3', '4', '6', '7', '8', '9'를 포함하지 않으면 매칭됩니다.이 방법은 구현이 간단하지만 성능 면에서 비효율적일 수 있습니다.비트를 사용한 방법:비트 연산을 통해 숫자의 각 자리를 효율적으로 검사할 수 있습니다.각 자리를 비트 연산으로 확인하여 '0'과 '5' 외의 숫자가 포함되어 있지 않는지 검토합니다.이 방법은 성능이 뛰어나지만 구현이 복잡할 수 있습니다.나머지를 사용한 방법:각 자리 숫자를 나머지 연산으로 검사하여 0과 5만 포함된 숫자인지 확인합니다.예를..
[프로그래머스] 수열과 구간 쿼리 2 코드 힌트배열 생성:결과를 저장할 배열을 queries의 길이만큼 생성합니다.반복문을 통한 쿼리 처리:각 쿼리에 대해 시작 인덱스 s, 끝 인덱스 e, 기준 값 k를 가져옵니다.구간 내 최소값 찾기:s부터 e까지의 구간에서 k보다 큰 값 중 가장 작은 값을 찾습니다.결과 저장:만약 k보다 큰 값이 없으면 -1을, 그렇지 않으면 찾은 최소 값을 결과 배열에 저장합니다. 정답은 더보기 클릭더보기class Solution { public int[] solution(int[] arr, int[][] queries) { // 쿼리 수만큼 결과 배열 생성 int[] result = new int[queries.length]; int idx = 0; // 결과..
[프로그래머스] 수열과 구간 쿼리 3 코드 힌트queries 배열을 순회:2차원 배열인 queries를 for문을 사용하여 순회합니다. 각 쿼리 [n, m]를 가져올 수 있게 합니다.forEach를 사용해도 좋고, 일반 for문을 사용해도 괜찮습니다.값 교환하기:arr[n]과 arr[m]의 위치를 바꿉니다. 자바에서 값을 교환할 때는 임시로 저장할 변수(temp)를 사용해야 합니다.파이썬에서는 n, m = m, n처럼 간단하게 값을 교환할 수 있지만, 자바에서는 temp = n;    n = m;    m = temp;  와 같이 임시 변수를 사용합니다.메소드 활용 연습:solution 메소드에 모든 코드를 넣을 수도 있지만, 메소드 분리를 연습하고 싶다면 swap 메소드를 따로 만들어 보세요. 이렇게 하면 코드가 더 깔끔해지고 재사용성이 ..
[프로그래머스] 치킨 쿠폰 힌트초기 설정:서비스 치킨의 수를 저장할 변수를 초기화합니다. (service 변수)반복문:치킨 쿠폰의 수가 10장 이상인 동안 반복합니다.서비스 치킨 계산:현재 치킨 쿠폰 수를 10으로 나누어 서비스 치킨의 수를 계산하고, 이를 service 변수에 더합니다.남은 쿠폰 계산:남은 쿠폰은 현재 치킨 쿠폰을 10으로 나눈 몫(서비스 치킨의 수)과 나머지(교환 후 남은 쿠폰)를 더한 값이 됩니다.반복 종료:치킨 쿠폰이 10장 미만이 되면 반복문을 종료하고, 최종적으로 계산된 서비스 치킨의 수를 반환합니다. 정답은 더보기 클릭더보기class Solution { public int solution(int chicken) { // 서비스 치킨의 개수를 저장할 변수 in..
[프로그래머스] 간단한 식 계산하기 코드 힌트문자열 분리: 공백을 기준으로 문자열을 분리합니다. 이를 위해 split(" ") 메소드를 사용합니다.피연산자 추출: 분리된 문자열에서 피연산자를 추출하여 정수로 변환합니다.연산자 추출: 분리된 문자열에서 연산자를 추출합니다.연산 수행: 연산자에 따라 적절한 연산을 수행하고 결과를 반환합니다.  정답은 더보기 클릭더보기class Solution { public int solution(String binomial) { // 공백을 기준으로 문자열을 분리하여 배열로 변환 String[] instruction = binomial.split(" "); // 첫 번째 피연산자를 정수로 변환 int firstOperand = Intege..

728x90