목록Java Note (89)
럿고의 개발 노트
[프로그래머스] 코딩테스트 연습 제일 작은 수 제거하기 간략한 문제 풀이 List를 이용하여 값을 제거하였으며, Stream을 이용해서 최소값을 구했습니다. Stream은 코드가 간결(?)해지긴 하지만, 속도문제에서는 확실히 너무 떨어지네요... 배열내에서 최소값을 구하고 특히 제거하는 것이 쉬운 편이 아니여서 조금 어려웠던 문제였던 것 같습니다. github 문제 및 풀이 문제 설명 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 제한 조건 arr은 길이 1 ..
자바 속도 해결 방안 JIT 컴파일러 외부 메커니즘없이 코드의 무효화, 재 컴파일 및 저장을 관리하므로 훨씬 빠른 실행이 가능 JIT 컴파일 장점 JIT compilation works transparently(투명하게 동작) JIT compilation speeds up the performance of Java classes (클래스 성능 향상) JIT stored compiled code avoids recompilation of Java programs across sessions or instances when it is known that semantically the Java code has not changed. (저장된 컴파일 코드는 의미적으로 Java코드가 변경되지 않은 것으로 알려진 ..
[프로그래머스] 코딩테스트 연습 정수 제곱근 판별 간략한 문제 풀이 수학적인 알고리즘을 생각하신다면 어렵지 않게 풀수 있었습니다. Math클래스의 메소드들 중 sqrt()와 pow()를 이해 할 수 있도록 하는 문제 중에 가장 좋은 문제가 아니였나 생각합니다. Math.sqrt() 양의 제곱근을 반환합니다. (리턴타입은 double) Math.pow() 첫 번째 인수의 값을 두 번째 인수의 거듭 제곱으로 리턴합니다. github 문제 및 풀이 문제 설명 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한 사항 n은 1이상, 500..
JVM, JDK, JRE JVM(Java Virtual Machine) 가상기계(Virtual Machine)란, S/W로 구현된 H/W를 뜻하는 넓은 의미의 용어로 예를 들어 TV와 비디오를 S/W화 한 윈도우 미디어 플레이어나 오디오 시스템을 S/W화 한 윈엠프 등이 포함된다. 가상컴퓨터(Virtual Computer)란, 실제 컴퓨터(H/W)가 아닌 S/W로 구현된 컴퓨터라는 의미다. 자바로 작성된 애플리케이션은 모두 JVM에서만 실행되기 때문에 자바 애플리케이션을 실행하기 위해서는 JVM이 반드시 필요하다. 스택기반의 가상머신. 일반프로그램 vs Java 프로그램 위의 사진과 같이 일반 프로그램은 OS만 거치고 하드웨어로 전달되는데, 자바 애플리케이션은 하드웨어에 맞게 컴파일된 상태가 아닌 실행 ..
[프로그래머스] 코딩테스트 연습 정수 내림차순으로 배치하기 간략한 문제 풀이 문자열 내림차순으로 배치하기와 전혀 다를바 없는 문제였다. 정수형타입을 문자형타입으로 변경한 후에 똑같히 진행하면 되는 부분이었습니다. 다른 사람 풀이 보면서, 간단히 메소드와 람다를 써서 끝낸 것이 있던데, 부럽네요 ㅎㅎ String res = ""; Integer.toString(n).chars().sorted().forEach(c -> res = Character.valueOf((char)c) + res); return Integer.parseInt(res); github 문제 및 풀이 문제 설명 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주..
[프로그래머스] 코딩테스트 연습 자연수 뒤집어 배열로 만들기 간략한 문제 풀이 StringBuffer를 사용하여, reverse메소드를 이용하여 뒤집었다. 처음에는 연산으로 풀려고 하는데, 아직 수학적인 알고리즘 생각은 부족한듯 하다..ㅠㅠㅠ(엄청나게 간단한 것 같은데...) Collection.reverse()는 문자열 내림차순으로 배치하기 에서 사용했었으나, 이번에는 StringBuffer의 reverse도 사용하니, reverse 메소드를 외우게 된 것 같다. Github 문제 및 풀이 문제 설명 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. ..
[프로그래머스] 자바 입문 Part5. 클래스와 객체 1. 클래스 선언 클래스 자바는 객체지향언어로 프로그램을 구성하는 요소들을 객체로 보고 이것이 상호작용 하도록 프로그래밍을 함 자바는 객체를 만들기 위해 반드시 클래스를 먼저 만들어야 함. 클래스는 객체를 만들기 위한 일종의 틀이라고 생각하면 됨. 예를들어서 붕어빵이 객체라면 붕어빵 틀이 클래스 그러나 붕어빵 틀 클래스가 생성되었다고 해서 붕어빵이 만들어진 것은 아님. 즉, 붕어빵틀을 이용해서 객체를 생성해야 함. 그때 사용하는 것이 new연산자로 new연산자 뒤에 나오는 생성자를 이용해 메모리에 객체를 생성 메모리에 만들어진 객체를 인스턴스(instance)라고 함 클래스 선언 방법 class 클래스명 { .... } public class Car ..
자바(Java)란? 1. 자바(Java)? 썬 마이크로즈(Sun)에서 1996년 1월에 발표한 프로그래밍 언어 중 하나로 객체지향 언어로 개발하였습니다. 다양한 최신 기술 지원 Java ME(Java Micro Edition) 제한된 자원을 가진 휴대전화, PDA, 세톱박스 등에서 지원하기 위해 만들어진 플랫폼. Java EE(Java Enterprise Edition) 자바를 이용한 서버 측 개발을 위한 플랫폼 Java EE 스펙에 따라 제품을 구현한 것을 웹 애플리케이션 서버 또는 WAS라고 불린다. Java FX 데스크톱 애플리케이션과 리치 인터넷 애플리케이션을 개발하고 배포하는 소프트웨어로, GUI 라이브러리인 스윙을 대체하기위해 고안 됨 전 세계에서 가장 많이 사용하는 프로그래밍 언어 중 하나입..
[프로그래머스] 코딩테스트 연습 자리수 더하기 간략한 문제 풀이 어렵지 않았던 문제로, 저와 같이 각 자릿수를 나눠서 배열에 넣는 방법과 10을 나눠서 몫을 다음 값으로 남겨두고, 나머지는 자릿수 값일테니깐, 그걸 더하는 방법도 있습니다. 사실, 두번째 방법이 리소스 면에서는 더 좋을 것 같습니다. 왜냐하면 String배열을 만들기도 하며, 메소드까지 써야 되는 상황이기 때문에, 단순 연산으로 끝나는거에 비해 더 리소스 면에서는 좋을 것 같습니다. github 문제 및 풀이 문제 설명 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,..