프로그래밍
-
[프로그래머스] 정수 제곱근 판별프로그래밍/코딩 테스트 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를 올린다.단, ..
-
[프로그래머스] 이상한 문자 만들기프로그래밍/코딩 테스트 2024. 8. 24. 15:54
문제.문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 제한 사항.* 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.* 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 나의 접근.주어진 문자열을 spite으로 쪼개어, 공백과 짝/홀수 인덱스를 파악하여 처리한다.class Solution { public String solution(String s) { String answer = ""; String[] str = s...
-
[Java] Optional<T>프로그래밍/JAVA 2023. 3. 12. 10:54
Optional을 사용하면 예상치 못한 NullPointerException 예외를 제공되는 메소드로 간단히 회피할 수 있다. 즉, 복잡한 조건문 없이도 널(null) 값으로 인해 발생하는 예외를 처리할 수 있게 된다. Optional를 사용하지 않을 경우, 조건문을 사용하여 null 체크를 해줘야한다. List member = memberRepository.findById(id); // member == null 일경우 String name = member.getName(); // NullPointerException 발생 List member = memberRepository.findById(id); // member == null 일경우 String name = ""; if(member != nul..