반응형

자바 58

프로그래머스 - 정수 제곱근 판별 java :: 12934

문제 링크 코딩테스트 연습 - 정수 제곱근 판별 | 프로그래머스 (programmers.co.kr) 문제 풀이 1번 풀이(바빌로나이법) public long solution(long n) { long count = 30; double x = 1.0; while(0 < count--) { x = (x + (n / x)) / 2; } return (x % 1 == 0.0) ? (long) ((x+1) * (x+1)) : -1; } 위 공식은 바빌로니아법 공식입니다. 위의 공식을 반복하면 제곱근의 근사값을 구할 수 있다는 원리입니다. 위의 공식을 예를 들어 설명하겠습니다. 구하고자 하는 값 S=9라고 가정하고, x = 1 부터 시작해서 일정횟수 반복합니다. ✳️ (1.0 + (9 / 1.0)) / 2 = 5...

Algorithm/Java 2022.01.11

프로그래머스 - 짝수와 홀수 java

12937번 문제 - 짝수와 홀수 코딩테스트 연습 - 짝수와 홀수 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 짝수와 홀수 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 입출력 예 num return 3 "Odd" 4 "Even" programmers.co.kr 풀이 어떤 수를 2로 나눈 나머지가 0이면 짝수, 아니면 홀수 class Solution { public String solution(int num) { return num % 2 == 0 ? "Even" : "Odd"; } }

Algorithm/Java 2022.01.09

프로그래머스 - 하샤드 수 java

12947번 문제 - 하샤드 수 코딩테스트 연습 - 하샤드 수 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하 programmers.co.kr 풀이 ✅ 조건은 1~10000 사이의 자연수 1. 구하고자 하는 자연수를 각 자릿수의 합을 구하고 2. 자연수를 합으로 나누었을 때 나머지가 0이면 하샤드 수 예1) 152 = 1+5+2 = 8 152 / 8 = 19 ❗(하샤드 수) 예2) 13 = 1+3 = 4 13 / 4 = 3.25 ❗(하샤드 수 X) 1번 풀이 pu..

Algorithm/Java 2022.01.08

프로그래머스 - 문자열 다루기 기본 java

12918번 문제 코딩테스트 연습 - 문자열 다루기 기본 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 문자열 다루기 기본 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1 programmers.co.kr 풀이 문제는 어렵지 않은데 문제를 제출하니 5번,6번 예제에서 실패가 나왔다. 문제 설명을 다시 읽어보니 문자열의 길이에 제한이 있더라... 1번 풀이 public boolean solution2(String s) { int len = s.length(); return (len == 4 || len ..

Algorithm/Java 2022.01.04

프로그래머스 - 문자열을 정수로 바꾸기 java

12925번 문제 코딩테스트 연습 - 문자열을 정수로 바꾸기 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 문자열을 정수로 바꾸기 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니 programmers.co.kr 풀이 생각 핵심은 맨앞의 문자는 '+', '-' 부호가 올 수 있다는 것 부호를 먼저 판별하고 남은 문자를 수로 변환하면 되겠다. 1번 풀이 public int solution(String s) { char first = s.charAt(0); boolean minus = (first == '-') ? true..

Algorithm/Java 2022.01.04

프로그래머스 - 자릿수 더하기 java

12931번 문제 코딩테스트 연습 - 자릿수 더하기 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 자릿수 더하기 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출 programmers.co.kr 풀이 생각 각 자릿수의 합을 구하는 방법은 0이 될 때까지 10으로 나눈 나머지를 더하기 ✅ 예) 123 n n/10 n%10 sum 12345 1234 5 0 + 5 = 5 1234 123 4 5 + 4 = 9 123 12 3 9 + 3 = 12 12 1 2 12 + 2 = 14 1 ..

Algorithm/Java 2021.12.28

프로그래머스 - 정수 내림차순으로 배치하기 java

문제 링크 - 12933번 코딩테스트 연습 - 정수 내림차순으로 배치하기 | 프로그래머스 (programmers.co.kr) 문제 이해하기 선택정렬 내림차순 {5, 7, 1, 3} 5, 7 비교 : 5 1 이므로 그대로 {7, 5, 1, 3} 7, 3 비교 : 7 > 3 이므로 그대로 {7, 5, 1, 3} {7, 5, 1, 3} 5, 1 비교 : 5 > 1 이므로 그대로 {7, 5, 1, 3} 5, 3 비교 : 5 > 3 이므로 그대로 {7, 5, 1, 3} {7, 5, 1, 3} 1, 3 비교 : 1 < 3 이므로 자리 교체 {7, 5, 3, 1} {7, 5, 3, 1} 문제 풀이 1번 풀이 public long solution..

Algorithm/Java 2021.12.27

프로그래머스 - 제일 작은 수 제거하기 java

문제 링크 - 12935 코딩테스트 연습 - 제일 작은 수 제거하기 | 프로그래머스 (programmers.co.kr) 문제 이해하기 배열을 순서대로 탐색하며 가장 작은 수를 찾아서 해당 수만 제거하고 새로운 배열에 담으면 되겠다. 배열이 빈 경우에는 -1 리턴이므로 입력 배열의 길이가 1이면 바로 -1 을 리턴하면 되겠다. 문제 풀이 1번 풀이 public int[] solution(int[] arr) { if(arr.length == 1) return new int[] {-1}; // 순서대로 탐색하며 가장 작은 수 찾기 int min = Integer.MAX_VALUE; for(int a : arr) { if(min > a) min = a; } // 위에서 찾은 가장 작은 수를 제외하고 새로운 배열..

Algorithm/Java 2021.12.22

프로그래머스 - 최대공약수와 최소공배수, 유클리드 호제법 java

12940번 문제 코딩테스트 연습 - 최대공약수와 최소공배수 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr 풀이 생각 최대공약수를 구하는 유클리드 호제법을 활용 최소공배수 = n * m / 최대공약수 1번 풀이 public int[] solution(int n, int m) { int gcd = gcd(n, m%n); int lcm = n * m / gcd; return new int[] {gcd, lcm}; } public..

Algorithm/Java 2021.12.22
반응형