전체 글
-
[프로그래머스] 제일 작은 수 제거하기프로그래밍/코딩 테스트 2024. 8. 24. 19:52
문제.정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 제한 사항.* arr은 길이 1 이상인 배열입니다. * 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. 나의 접근.우선, 주어진 배열의 크기가 1인 경우, -1을 담아 리턴한다.배열 내 제일 작은 숫자를 찾아 배열에서 제외한다.import java.util.Arrays;class Solution { public int[] solution(int[] arr) { i..
-
[프로그래머스] 나머지가 1이 되는 수 찾기프로그래밍/코딩 테스트 2024. 8. 24. 19:25
문제. 자연수 n이 매개변수로 주어집니다.n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한 사항.* 3 ≤ n ≤ 1,000,000 나의 접근.주어진 자연수 n부터 반복하여, n을 반복수로 나눴을때 나머지가 1이되는 가장 작은 수를 구한다.class Solution { public int solution(int n) { int answer = 1; for(int i = answer; i // 입력값10// 결과3 링크.https://school.programmers.co.kr/learn/courses/30/lessons/87389
-
[프로그래머스] 정수 제곱근 판별프로그래밍/코딩 테스트 2024. 8. 24. 18:58
문제.임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한 사항.* n은 1이상, 50000000000000 이하인 양의 정수입니다. 나의 접근.Math에 sqrt 함수를 사용하여 제곱근이 양의 정수이면, pow 함수를 활용하여 제곱근+1의 제곱을 구한다.단, 제곱근이 양의 정수가 아닐 경우 -1 리턴 class Solution { public long solution(long n) { long answer = -1; double d = Math.sqrt(n); if (d % 1 == 0...
-
[프로그래머스] 하샤드 수프로그래밍/코딩 테스트 2024. 8. 24. 18:26
문제. 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한 사항.* x는 1 이상, 10000 이하인 정수입니다. 나의 접근.우선 자릿수의 합을 구하고, 주어진 양의 정수 x로 나누었을때, 나머지가 0인지 여부를 판단한다.class Solution { public boolean solution(int x) { int xsum = 0; int xtmp = x; for(int i = 0 ; i // 입력값1213// 결과truefalse..
-
[프로그래머스] 최대공약수와 최소공배수프로그래밍/코딩 테스트 2024. 8. 24. 18:02
문제. 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 제한 사항.* 두 수는 1이상 1000000이하의 자연수입니다. 나의 접근.최대공약수를 구하는 방법은 0부터 주어진 두 수 중 작은 수까지 반복하여, 나눌때 나머지가 0인 수를 구한다.그 수들의 곱이 최대공약수이다.최소공배수를 구하는 방법은 최대공약수에 최종적으로 나온 나머지 값을 값을 곱하면 최소공배수이다. class Solution { public int[] solution(int..
-
[프로그래머스] 같은 숫자는 싫어프로그래밍/코딩 테스트 2024. 8. 24. 17:25
문제.배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,* arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다.* arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요.제한 사항.* 배열 arr의 크기 : 1,000,000 이하의 자연수* 배열 arr의 원소의 크기 : 0보다 크거..
-
[프로그래머스] 3진법 뒤집기프로그래밍/코딩 테스트 2024. 8. 24. 16:55
문제.자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한 사항.* n은 1 이상 100,000,000 이하인 자연수입니다. 나의 접근.자연수 n를 3진법으로 변환하고, 이를 역순하여 다시 10진법으로 변환한다.class Solution { public long solution(int n) { long answer = 0; // 3진법 값 long answer1 = 0; // 10진법 값 int count = 0; // 3진법 자릿수 if(n % 3 == 0) count = count -1; // 3진법 역순값 구하기 ..
-
[프로그래머스] 크기가 작은 부분 문자열프로그래밍/코딩 테스트 2024. 8. 24. 16:40
문제. 숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요.예를 들어, t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개 입니다.제한 사항.* 1≤ p의 길이 ≤ 18* P의 길이 ≤ t의 길이 ≤ 10,000* t 와 p는 숫자로만 이루어진 문자열이며, 0으로 시작하지 않습니다. 나의 접근.주어진 문자열 t를 p길이로 잘라서, p값 보다 작으면, count를 올린다.단, ..