자바 CS ﹒ Algorithm/Baekjoon 2022. 6. 28. JAVA백준 문제풀이 (3) 1193:분수찾기 또 수열 문제다. 이번에는 벌집보다 훨씬 단순한 수열로써 분모와 분자 중 어느 쪽이 값이 증가하고 내려가는 구간인지만 헷갈리지 않으면 쉽게 풀 수 있다. 조건 1. 각 대각선 라인의 분모와 분자 값이 1씩 증가하고 있다. 2. 짝수 라인에는 우상단(분모⬆️분자⬇️), 홀수 라인에서는 좌하단(분자⬆️분모⬇️)으로 이동한다. 풀이 1. while문을 이용해 입력받은 값이 몇번째 라인에 있는지 계산한다. Scanner scanner = new Scanner(System.in); int input = scanner.nextInt(); int count = 0; while ( sum(count) < input ) { count++; } // 자연수의 합 구하는 메서드 public static int sum(int.. CS ﹒ Algorithm/Algorithm 2022. 6. 24. 0부터 n까지의 수 중 소수 구하기 : 에라토스테네스의 체 고대 그리스 수학자 에라토스테네스가 발견한 소수를 구하는 간편한 방법이다. 알고리즘 중에 그나마 쉬운 편에 속한다. (1) 우선 0과 1은 소수가 아니기때문에 제외한다. (2) 소수인 2를 제외한 2의 배수를 모두 제외한다. (3) 소수인 3을 제외한 3의 배수를 모두 제외한다. (4) 소수인 5를 제외한 5의 배수를 모두 제외한다. (5) 소수인 7을 제외한 7의 배수를 모두 제외한다. (6) 위의 과정을 반복하며 제외되지 않은 소수 n을 제외한 n의 배수를 제외.. 무한 반복 글로만 읽어도 그럭저럭 이해가 되겠지만 아래의 친절한 그림을 보고나면 더욱 와닿을 것이다. 이 알고리즘을 JAVA로 작성해보자. public static String test(int num) { // 인자로 제공되는 수와 인덱.. Language & Framework/Java 2022. 6. 21. 자바 예외 (1) java.io.NotSerializableException /Library/Java/JavaVirtualMachines/temurin-8.jdk/Contents/Home/bin/java -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=59712:/Applications/IntelliJ IDEA.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Library/Java/JavaVirtualMachines/temurin-8.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/temurin-8.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Libr.. Language & Framework/Java 2022. 6. 9. 자바 Math 클래스의 기본 활용 Math 클래스의 생성자는 접근 제어자가 private으로 설정되어 있기 때문에 인스턴스 생성이 불가능하며, 모든 메서드가 static으로 정의되어 있다. 또한 Math 클래스에는 두 가지의 상수가 있는데 그것은 PI(원주율)와 E(자연로그의 밑)다. System.out.println("Math.PI = " + Math.PI); System.out.println("Math.E = " + Math.E); //Math.PI = 3.141592653589793 //Math.E = 2.718281828459045 아무래도 Math 클래스에서 가장 많이 사용되는 메서드는 Random과 foor, round, ceil일 것이다. 일단 가장 먼저 round를 활용한 소수점 n자리까지 반올림하는 방법을 알아보자. do.. Language & Framework/Java 2022. 6. 3. 자바 멤버 변수의 초기화 순서 예제 위 코드는 어떤 순서로 실행될까? 멤버 변수의 초기화 시기와 순서는 다음과 같다. 초기화 시기 1. 클래스 : 클래스가 처음 로드될 때 한 번 초기화. 2. 인스턴스 : 새로운 인스턴스가 생성될 때마다 각각의 인스턴스가 초기화. 초기화 순서 1. 클래스 변수의 기본값 ( ex > static int num; ) => int의 기본값은 0이다. 2. 클래스 변수의 명시적 초기화 ( ex > static int num = 10; ) 3. 클래스 초기화 블럭 ( ex > static { num = 20; } ) 4. 인스턴스 변수의 기본값 ( ex > String title; ) => String의 기본값은 null이다.(참조형 변수) 5. 인스턴스 변수의 명시적 초기화 ( ex > String title =.. Language & Framework/Java 2022. 6. 2. 자바 재귀 호출은 무엇인가? : factorial, 거듭제곱의 합 구하기 메서드의 내부에서 스스로를 재호출하는 것을 재귀호출이라고 한다. 물론 스스로 계속해서 호출하기만 한다면 callStack을 가득 채우게 되어서 StackOverFlow 에러를 보게 될 것이다. 따라서 필수적으로 조건문이 붙어야 한다. 엥? 별다른 지정해주지 않으면 계속 반복하고 조건문으로 제어해줘야 한다고? 그냥 반복문 아닌가? 그렇다. 반복문은 명령만을 반복해서 수행한다면 재귀 호출은 메소드를 직접적으로 반복 호출하는 형태이다. 그러나 재귀 호출 시에는 메서드를 계속해서 호출하기 때문에 CallStack의 메모리 공간을 계속해서 사용하게 되기 때문에 성능면에서 반복문보다 좋지 않다. (사용하는 언어의 컴파일러가 꼬리재귀를 지원한다면 꼬리재귀의 사용으로 이런 단점을 극복할 수 있으나 이 글에서는 다루지 .. Language & Framework/Java 2022. 5. 31. 자바 배열 : 정렬하기(sort), 값 카운트하기 1. 정렬하기 우선 j 쩝쩝/잡담 2022. 5. 27. 갑.분.자 .. 왜 JAVA인가? 정말 뜬금없이 JAVA를 공부하고 있다. 열심히 JS를 공부하다가 JAVA를 공부하고 있는 경위를 쉽게 설명하자면 다음과 같다. "프론트엔드 개발 짱! 너무 재미있어!" => "어? 백엔드가 더 재미있네? 노드를 열심히 공부해봐야겠다" => "아니.. 좀 배우려는데 자료가 왜 이렇게 부족해? 타입은 어떤 기준으로 씌우는 거야?" => "뭐야? 자바는 자료가 왜 이렇게 넘쳐 흐르는 거야? 궁금해서 검색하면 죄다 자바만 나오네" => "자바 공부해야겠다" 조금 이해 안될 정도로 극단적인 흐름으로 보일 수도 있고 "개발자는 평생 스스로 학습해야 하는 것인데~~ 에잉~~ 쯧! "이렇게 생각할 수도 있지만 나는 차를 타고 갈 수 있는 길을 굳이 힘들게 걸어가는 걸 좋아하지 않는다. 예를 들어 내 목표가 한라산 등.. 이전 1 다음