본문 바로가기

JAVA

(78)
JAVA :: Math.sqrt(i) Math.sqrt(i) Math 클래스에 포함된 제곱근(square root) 계산 메서드. 즉, i의 제곱근(√i)을 반환한다.  Math.sqrt(i) 결과를 int로 변환했을 때 값이 변하지 않으면 완전제곱수이다.if (Math.sqrt(i) == (int)Math.sqrt(i)) { System.out.println(i + "는 완전제곱수입니다!");}  예시)두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. class Solution { public int solution(int left, int righ..
[프로그래머스-자바] 약수의 합 문제 정답 1. 내가 작성한 답안class Solution { public int solution(int n) { int answer = 0; for(int i=1;i   2. 효율적인 답안class SumDivisor { public int sumDivisor(int num) { int answer = 0; for (int i = 1; i   효율성 비교 반복 횟수:첫 번째 코드: 최대 num / 2번 반복 두 번째 코드: n번 반복 예를 들어, num = 1000일 때: 첫 번째 코드: 500번 반복 두 번째 코드: 1000번 반복 시간 복잡도: 첫 번째 코드: O(n / 2) ≈ O(n) 두 번째 코드: O(n) 두 코드 모..
JAVA :: 리플렉션(Reflection) 리플렉션(Reflection)구체적인 클래스 타입을 알지 못하더라도 그 클래스의 메서드, 타입, 변수들에 접근할 수 있도록 해주는 자바 API. 컴파일 시간이 아닌 실행 시간에 동적으로 특정 클래스의 정보를 추출할 수 있는 프로그래밍 기법.자바가 기본적으로 제공하는 기능이야. 자바 표준 라이브러리 중 하나인 java.lang.reflect 패키지를 통해 제공되며, 별도의 추가 라이브러리 없이도 사용할 수 있다. 리플렉션 사용 이유동적으로 클래스를 사용해야할 때 필요. 작성 시점에는 어떠한 클래스를 사용해야 할지 모르지만 런타임 시점에서 클래스를 가져와서 실행해야하는 경우 필요. 대표적으로는 Spring 프레임워크의 어노테이션 같은 기능들이 리플렉션을 이용하여 프로그램 실행 도중 동적으로 클래스의 정보를 ..
JAVA :: Apache Commons Lang3 Apache Commons Lang3 자바 개발에서 자주 사용되는 유틸리티 클래스들을 제공하는 라이브러리. 자바 표준 라이브러리에서 부족하거나 불편한 기능들을 보완하여, 문자열, 숫자, 날짜, 객체 등의 처리를 더 쉽게 만들어 준다.  StringUtils (문자열 관련 기능) - 문자열을 처리하는 데 유용한 다양한 메소드를 제공StringUtils.isEmpty(""); // trueStringUtils.isBlank(" "); // trueStringUtils.join(Arrays.asList("apple", "banana", "cherry"), ","); // "apple,banana,cherry"isEmpty(): 문자열이 null 또는 빈 문자열인지 확인 isBlank(): 문자열이 공백으로..
JAVA :: 공백을 표현하는 자바 정규 표현식 split으로 문자열을 나눌 때 간혹 대상이 되는 문자열에 공백이 하나 이상 들어간 경우가 있다. 이때 공백을 없앨 수 있는 방법은 trim과 split이 있다. 공백이 문자열 앞뒤에 있는 경우trim()입력 문자열의 앞과 뒤에 있는 공백을 제거할 수 있다. 공백이 문자열 사이에 있는 경우split()메서드를 사용하여 공백을 기준으로 문자열을 분리한다." \\s+ "는 하나 이상의 공백을 의미한다.   예시//프로그래머스 문제 : 공백으로 구분하기class Solution { public String[] solution(String my_string) { String[] answer = my_string.trim().split("\\s+"); return answer; ..
[프로그래머스-자바] 문자열 밀기 문제 나의 풀이 (오답) - 제공된 테스트 케이스는 성공했지만 다른 테스트에서 오답이 걸렸는지 실패로 처리되었다.class Solution { public int solution(String A, String B) { int answer = 0; String[] strr = A.split(""); //A를 배열에 저장 String[] strr2 = B.split(""); //B를 배열에 저장 String[] nstr = new String[A.length()]; //A 길이의 배열 생성 int a = A.indexOf(strr2[0]); //B의 첫 시작이 A의 어떤 알파벳인지 찾아보기 for(int i=0;iMath.abs(A.length()-a)){ //a 값이 ..
[프로그래머스-자바] 유한소수 판별하기 문제 문제 풀이 과정 - 이 문제는 풀지 못했으므로 아래 과정은 오답이다 이 풀이가 틀린 이유는 새롭게 도출한 b의 값이 오류이기 때문이다. (예시 : a가 10, b가 12인 경우를 처리 못함)이를 처리하기 위해서는 유클리드 호제법을 사용해야 한다. 아래 정답을 작성하고 이를 토대로 부연 설명을 쓰겠다.  정답class Solution { public int solution(int a, int b) { int b1 = b/sol(a,b); while(b1!=1){ if(b1%2==0){ b1 /= 2; }else if(b1%5==0){ b1 /= 5; }else..
[프로그래머스-자바] 종이 자르기 문제풀이 과정 정답class Solution { public int solution(int M, int N) { int answer = (N-1)+(M-1)*N; return answer; }}