목록분류 전체보기 (139)
럿고의 개발 노트
[프로그래머스] 코딩테스트 연습 정수 제곱근 판별 간략한 문제 풀이 수학적인 알고리즘을 생각하신다면 어렵지 않게 풀수 있었습니다. Math클래스의 메소드들 중 sqrt()와 pow()를 이해 할 수 있도록 하는 문제 중에 가장 좋은 문제가 아니였나 생각합니다. Math.sqrt() 양의 제곱근을 반환합니다. (리턴타입은 double) Math.pow() 첫 번째 인수의 값을 두 번째 인수의 거듭 제곱으로 리턴합니다. github 문제 및 풀이 문제 설명 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한 사항 n은 1이상, 500..
[프로그래머스] 자바 입문 Part6. 클래스 다듬기 1. 생성자 생성자 모든 클래스는 인스턴스화 될때 생성자를 사용함 생성자의 특징 리턴타입이 없음 생성자를 만들지 않으면 매개변수가 없는 생성자가 컴파일 시 자동 생성 매개변수가 없는 생성자를 기본생성자라고 함 생성자를 만들었다면, 기본생성자는 자동으로 만들어 지지 않으며, 기본생성자를 사용하기 위해서는 수동으로 지정해줘야 함. 생성자의 역할은 객체가 될 때 필드를 초기화 함 public class Car { String name; // 필드 int number; // 필드 // 여기까지 생성자가 없다면 기본생성자가 만들어짐, 그러나 아래처럼 생성자를 만들면 기본생성자가 생성되지 않음 // 생성자가 하는 일은 객체가 될때 필드를 초기화 하는 역할 pub..
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,..
[프로그래머스] 코딩테스트 연습 이상한 문자 만들기 간략한 문제 풀이 처음에는 쉬워보여서 쉽게 풀 수 있다고 생각했는데, 제한 사항에는 없지만 공백이 연속으로 나올 수 있는 상황이 있을 수도 있었습니다. 처음에 split()를 사용했더니, 그런 부분들에 대해서는 체크를 못하기 때문에 100점이 나오지 않았습니다. 그래서 문자별대로 나눠서 따로 단어 길이를 측정해서 변경하였습니다. 조건식을 적는 것이 처음하시는 분들은 조금 까다로울 수도 있지만, 알고리즘 입문자에게는 적당한 난이도가 아닐까 생각합니다. character를 사용하다보니, 아스키 코드를 사용했어야 합니다. String.valueOf() github 문제 및 풀이 문제 설명 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 ..