본문 바로가기

분류 전체보기221

[알고리즘] 7-3 팩토리얼 - 재귀함수 (인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의) 인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 풀이 코드를 정리하고 있습니다. 문제 설명 : 자연수 n이 입력되면 n! 을 구하는 문제 자료구조 책과 같은 곳에서 재귀함수를 설명할 때 흔히 볼 수 있는 문제이다. 풀이 재귀를 사용하여 풀이 n이 5일때, 메서드의 호출과 반환 과정은 다음과 같다.(->는 메서드 호출 순서, 2021. 6. 13.
[알고리즘] 7-2 재귀함수를 이용한 이진수 출력 (인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의) 인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 풀이 코드를 정리하고 있습니다. 문제 설명 : 10진수 n이 입력되면 2진수로 변환하여 출력하는 문제 풀이 10진수를 2진수로 변환하는 방법 10진수를 몫이 1이 될때까지 2로 나눈다. 마지막 남은 몫 1과 나누기 과정에서 생긴 나머지들을 역순으로 적어준다. 11(10) -> 1011(2) 재귀와 위의 계산 방법을 코드에 그대로 적용하여 풀이 package inflearn.recursive_tree_graph; import java.util.Scanner; //재귀함수를 이용한 이진수 출력 public class Main7_2 { public static void recursive(int n) { if (n == 0) retu.. 2021. 6. 13.
[알고리즘] 7-1 재귀함수 (인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의) 인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 풀이 코드를 정리하고 있습니다. 문제 설명 : 자연수 n이 입력되면 재귀함수를 이용해 1~n까지 출력하는 문제 풀이 package inflearn.recursive_tree_graph; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; //재귀 함수 : n이 입력되면 1~n까지 출력하는 문 public class Main7_1 { public static void recursive(int n) { if(n == 0) return; recursive(n-1); System.out.print(n + " "); } p.. 2021. 6. 13.
[알고리즘] 6-8 이분 검색(이진 탐색, Binary Search) - 인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의 인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 강의 수강 후 복습 풀이 코드를 정리하고 있습니다. 문제 링크 : https://cote.inflearn.com/contest/10/problem/06-08 문제 설명 : n개의 수와 그 중 하나인 m이 주어지고, n개의 수를 오름차순으로 정렬했을 때 m은 몇 번째에 위치하는지 이분 검색(이진 탐색, Binary Search)을 이용해 구하는 문제 이진 탐색이란? 풀이 이분 검색(이진 탐색, Binary Search)를 사용하여 풀이 package inflearn.sorting_searching; import java.io.BufferedReader; import java.io.IOException; import java.io.. 2021. 6. 12.
[알고리즘] 6-9 뮤직비디오 - 결정 알고리즘, 이진 탐색(인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의) 인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 풀이 코드를 정리하고 있습니다. 문제 링크 : https://cote.inflearn.com/contest/10/problem/06-09 풀이 결정 알고리즘(이진 탐색)을 사용하여 최소 용량을 탐색한다. package inflearn.sorting_searching; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; //뮤직비디오(결정 알고리즘) public class Main6_9 { //capacity 용.. 2021. 6. 12.
[Effective Java 3/E] 아이템6. 불필요한 객체 생성을 피하라 똑같은 기능의 객체를 매번 생성하는 것보다 객체 하나를 재사용하는 편이 나은 경우가 많다. 불변 객체는 언제든 재사용할 수 있다. String s = new String("bikini"); //따라 하지 말 것!생성자로 문자열을 만들면 매번 새로운 String 인스턴스를 생성(Heap 영역에 할당). String s = "bikini";리터럴로 문자열을 만들면 String Constatnc Pool에 할당되어 같은 문자열 리터럴을 사용하는 모든 코드가 같은 객체를 재사용하는 것이 보장된다. https://madplay.github.io/post/java-string-literal-vs-string-object 정적 팩터리 메서드 생성자 대신 정적 팩터리 메서드를 사용해 불필요한 객체 생성을 피할 수 있다.. 2021. 6. 10.