본문 바로가기

전체 글221

[알고리즘] 2-5 소수, 에레토스테네스 체(인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의) 인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 간략한 문제 설명, 예습 풀이 코드, 강의에서 설명하는 풀이 코드를 정리하고 있습니다. 문제 링크 : https://cote.inflearn.com/contest/10/problem/02-05 문제 설명 : 1~n까지의 소수 개수를 출력 에라토스테네스 체 고대 그리스 수학자 에라토스테네스가 만들어낸 간단하고 빠르게 소수를 찾는 방법이다. 마치 체로 치듯이 수를 걸러낸다고 하여 '에라토스테네스 체'라고 부른다. 계산 방법 n이하의 수들 중에 소수를 찾는다고 가정하고, 1~n까지 숫자를 차례대로 쭉 적는다. 자연수 1을 제거한다. 2를 제외한 2의 배수를 제거한다. 3을 제외한 3의 배수를 제거한다. 다음은 4의 배수를 지워야하지.. 2021. 5. 13.
[알고리즘] 2-4 피보나치 수열(인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의) 인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 간략한 문제 설명, 예습 풀이 코드, 강의에서 설명하는 풀이 코드를 정리하고 있습니다. 문제 링크 : https://cote.inflearn.com/contest/10/problem/02-04 문제 설명 : n개 항의 피보나치 수열 출력 피보나치 수 피보나치 수는 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두항의 합인 수열이다. 출처 : https://ko.wikipedia.org/wiki/%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98_%EC%88%98 내 풀이 for문과 배열을 사용하여 풀이 public class Main2_4 { public static int[] solution(int n.. 2021. 5. 13.
[알고리즘/인프런] 2-3 가위바위보(인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의) 인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 예습 풀이 코드, 강의에서 설명하는 풀이 코드를 정리하고 있습니다. 문제 링크 : https://cote.inflearn.com/contest/10/problem/02-03 문제 설명 : 가위바위보 시뮬레이션 내 풀이 if문을 사용하여 둘중 한 사람을 기준으로 경우의 수를 조건으로 나눠서 간단히 해결 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; //가위바위보 public class Main2_3 { public static char[] soluti.. 2021. 5. 12.
[Effective Java 3/E] 아이템1. 생성자 대신 정적 팩터리 메서드를 고려하라 정적 팩터리 메서드란? 클래스의 인스턴스를 반환하는 정적 메서드 Boolean 클래스의 valueOf 메서드는 기본 타입인 boolean 값을 받아 Boolean 객체 참조로 변환해준다. //Boolean 클래스의 코드 중 일부 public static Boolean valueOf(boolean b) { return (b ? TRUE : FALSE); } 정적 팩터리 메서드가 생성자보다 좋은 이유? 1. 이름을 가질 수 있다. 생성자만으로는 반환될 객체의 특성을 정확히 설명하지 못하지만, 메서드 이름을 통해 반환될 객체의 특성을 설명할 수 있다. 하나의 시그니처로는 생성자를 하나만 만들 수 있기 때문에, 하나의 시그니처로 여러 개의 생성자가 필요하다면 정적 팩터리 메서드를 사용하자. 시그니처 : 메서드의.. 2021. 5. 11.
[알고리즘/인프런] 2-2 보이는 학생(인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의) 인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 예습 풀이 코드, 강의에서 설명하는 풀이 코드를 정리하고 있습니다. 문제 링크 : https://cote.inflearn.com/contest/10/problem/02-02 문제 설명 : n명의 학생이 일렬로 서있을때 맨 앞에서 보이는 학생의 수(앞에 있는 사람들 보다 키가 커야 보임) 입출력 예시 입력 예시 8 130 135 148 140 145 150 150 153 출력 예시 5 내 풀이 import java.util.Scanner; public class Main2_2 { public static int solution(int[] arr) { int count = 1; //첫번째 사람은 무조건 보이기 때문에 1 int m.. 2021. 5. 11.