*모든 풀이 코드는 직접 작성하였습니다. 문제 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 문제 풀이 다양한 풀이 방법이 있겠지만, 결국 정수 x를 어떻게든 자릿수 별로 분리해서 더하면 거의 끝나는 문제다. 풀이 코드 일반 for 문 import java.util.*; class Solution { public boolean solution(int x) { int sum = String.valueOf(x) .chars() //문자열을 int스트림으로 변환, 유니코드 값 얻음 ..
분류 전체보기
*모든 풀이 코드는 직접 작성하였습니다. 문제 주어진 n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴할 것. 예: 612439 -> 964321 문제 풀이 내림차순 정렬이므로, 배열에 넣어서 Collections.reverseOrder() 메소드로 내림차순 정렬 후 다시 long 타입으로 반환해주면 된다. 풀이 코드 import java.util.*; class Solution { public long solution(long n) { String[] arr = String.valueOf(n).split(""); // n을 한 글자씩 잘라 arr 배열에 담음 Arrays.sort(arr, Collections.reverseOrder()); // 배열 내림차순 정렬 StringBuilde..
*모든 풀이 코드는 직접 작성하였습니다. 문제 문자열 s를 숫자로 변환한 결과를 반환하는 함수를 작성하라. 조건 : s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니다. s는 "0"으로 시작하지 않습니다. 문제 풀이 다른 언어는 모르겠지만, Java는 한줄로 끝낼 수 있다. Integer.parseInt() 메소드는 +, - 부호도 인식해서 int로 바꿔버린다. "+1234" 는 1234로, "-1234"는 -1234로... 풀이 코드 class Solution { public int solution(String s) { return Integer.parseInt(s); } }
*모든 풀이 코드는 직접 작성하였습니다. 문제 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 한다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성할 것. 문제 풀이 문제가 요구하는 것을 다른 표현으로 말하면, n의 제곱근(루트)이 양의 정수인가? 이다. 제곱근을 판별할려면 Math 클래스를 사용하면 편하다. Math.sqrt() 메소드로 n의 제곱근을 구한 뒤, 이것이 정수인지 판별하면 된다. 단, double 타입의 제곱근 sqrt와 int 타입의 sqrt.intValue()는 정밀도의 차이를 생각해서 강제 타입 변환(캐스팅)을 해 줘야 한다. 풀이 코드 class Solution { pu..
StringTokenizer 클래스는 Java 1.0 부터 제공하던 클래스로, 지정한 구분자로 문자열을 쪼개주는 클래스이다. Enumertaion 인터페이스를 구현하고 있다. 클래스를 사용한 간단한 예를 들면, "This is how to use Tokenizer." 라는 문자열을 공백 한 칸을 기준으로 쪼갠다면, This is how to use Tokenizer. 이렇게 총 6개의 토큰으로 쪼개고 순서대로 반환할 수 있는 것이 StringTokenizer 클래스의 기능이다. StringTokenizer 클래스를 사용하기 위해서는 먼저 java.util.StringTokenizer 를 import 해줘야 한다. 생성자(Constructor) public StringTokenizer(String str)..
public class Main { public static void main(String[] args) { int primitive = 1; // 기본 타입 변수 선언 및 초기화 Object reference = new Object(); // 참조 타입 변수 선언 및 초기화 System.out.println(primitive); System.out.println(reference); } } 결과 1 java.lang.Object@7a81197 Q1. 왜 변수 'reference' 에는 값을 할당하지 않았는데, 결과 값이 'java.lang.Object@7a81197' 가 나왔는가? Answer : 기본 변수는 데이터의 실제 값 '1' 을 저장한 반면, 참조 변수인 'reference' 는 해당 객체의 ..
타입 : 데이터의 메모리 저장 방식, 메모리 공간의 크기를 명시 저장 방식 기본 타입과 참조 타입 기본 타입(primitive type)(또는 원시 타입) 데이터의 실제 값 저장 정수 타입, 실수 타입, 문자 타입, 논리타입 참조 타입(reference type) 데이터가 저장된 주소값 저장 배열, 클래스, 인터페이스 등 public class Main { public static void main(String[] args) { int primitive = 1; // 기본 타입 변수 선언 및 초기화 Object reference = new Object(); // 참조 타입 변수 선언 및 초기화 System.out.println(primitive); System.out.println(reference); ..
상수 : 재할당이 금지된 변수 사용법 'final' 키워드 사용 관례적으로 대문자 및 언더바(_) 사용하여 구분 (SCREAMING_SNAKE_CASE) 사용 이유 변하면 안되는 값이 필요할 경우 코드 가독성 높이기 위해 fianl double CALCULATOR_PI = 3.1415; 코드 유지관리 위 예시를 들 경우, 상수를 사용하면 3.1415를 직접 그대로 사용할 때 보다 값의 변경이 쉬움. 상수의 할당 값만 변경하면 됨.
변수(variable) : 데이터를 저장하기 위해 이름을 할당받은 메모리 공간 특징 : 선언 및 초기화 필요 int num; //변수 선언 num = 1; //변수 초기화(할당) int num2 = 2 //변수 선언과 동시에 초기화 명명 규칙 카멜케이스를 사용한다. 두 번째 단어부터 대문자로 시작int camelCase; 변수명으로 영문자, 숫자, '_', '$' 사용 가능int num; int NUM; int num_1; int num$1; 자바에서 사용중인 예약어는 변수명으로 사용 불가int byte; //에러 int class; //에러