아이디어 1. 거스름돈의 종류를 보면 25, 10, 5, 1입니다. 2. 큰 수가 작은 수의 배수 조합(25 = 2*10 + 1*5), (10 = 5*2), (5 = 5*1) 으로 이루어졌기 때문에 그리디 알고리즘으로 문제를 해결할 수 있습니다. 풀이 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for (int i = 0; i < T; i++) { int C = sc.nextInt(); System.out.print(C / 25 + " "); C %=25; System.out.print..
얕은 복사와 깊은 복사 이 개념은 '참조형 변수'를 복사할 때 알아야 하는 개념입니다. 참조형 변수는 변수에 실제 값을 저장하고 있는 것이 아니라 값이 저장된 메모리 공간의 주소를 저장하고 있습니다. 얕은 복사 참조형 변수를 복사할 때 '주소값'을 복사하는 것을 말합니다. int[] a = {1, 2, 3}; int[] b = a; 이렇게 정수형 배열 a를 선언하고 b에 a를 복사해보겠습니다. b[0] = 10; for (int i : a) { System.out.print(i + " "); } System.out.println(); for (int j : b) { System.out.print(j + " "); } b[0] 를 10으로 변경하고 a와 b를 출력하면 결과가 어떻게 나올까요? 일반적으로 예..
인스턴스란? 인스턴스(instance)는 클래스를 이용해 만든 객체 하나하나를 해당 클래스의 인스턴스라고 부릅니다. instance of 이 연산자는 말 그대로 어떤 객체가 특정 클래스의 인스턴스인지를 확인하는 연산자입니다. 결과값은 참/거짓을 표현하는 boolean 타입인데 각각의 결과가 나오는 케이스는 다음과 같습니다. true가 나오는 경우 객체가 해당 클래스의 인스턴스이거나 또는 해당 클래스를 상속하는 자식 클래스의 인스턴스일 경우 false가 나오는 경우 객체가 해당 클래스의 부모 클래스의 인스턴스일 경우 error 객체를 만든 클래스와 비교하고자 하는 클래스가 어떠한 상속관계도 가지지 않을 때 예시를 통해 살펴보겠습니다. public class Main { public static void m..
2745번 문제 2745번. 진법 변환 진법에 대한 이해, 아스키코드에 대한 이해만 있다면 충분히 풀 수 있는 어렵지 않은 문제입니다. 아이디어 B진법으로 표현된 숫자를 10진법으로 변환하면 다음과 같습니다. a * B^4 + b * B^3 + c * B^2 w-hand.tistory.com 위 문제와 마찬가지로 진법 변환에 대한 이해, 아스키 코드에 대한 이해가 있다면 쉽게 풀 수 있습니다. 아이디어 1. 10진법으로 표현된 수를 B진법으로 표현하고 싶다면 B로 나누면서 나머지들을 모으면 됩니다. 8을 2진법으로 나타내기 8 % 2 = 0, 8 / 2 = 4 4 % 2 = 0, 4 / 2 = 2 2 % 2 = 0, 2 / 2 = 1 1 % 2 = 1, 1 / 2 = 0 몫이 0이 된 순간 나누기를 멈추..
진법에 대한 이해, 아스키코드에 대한 이해만 있다면 충분히 풀 수 있는 어렵지 않은 문제입니다. 아이디어 B진법으로 표현된 숫자를 10진법으로 변환하면 다음과 같습니다. a * B^4 + b * B^3 + c * B^2 + d * B^1 + e = B * (a * B^3 + b * B^2 + c * B^1 + d) + e a * B^3 + b * B^2 + c * B^1 + d = B * (a * B^2 + b * B^1 + c) + d a * B^2 + b * B^1 + c = B * (a * B^1 + b) + c a * B^1 + b = B * (a) + b a = B * 0 + a 이전의 결과에 B를 곱하고 자기 자신을 더하는 과정을 반복하면 원하는 결과를 얻을 수 있습니다. 2. 'A' 부터 '..
변수의 타입 Java에는 여러가지 데이터 타입이 존재하는데 이를 크게 분류하면 '기본형'과 '참조형'으로 나눌 수 있습니다. 기본형 : 값을 직접 변수에 저장하는 타입 참조형 : 값을 저장하고 있는 메모리 주소를 변수에 저장하는 타입 기본형 기본형은 크게 4가지 타입이 존재하고 자세하게 들어가면 8가지 타입이 존재합니다. 1. boolean 2. char 3. 정수형 : byte, short, int, long 4. 실수형 : float, double 각각의 타입에 대해서 기본값이 존재하여서 따로 값을 할당하지 않을 경우 null이 아니라 약속된 기본값이 할당되게 됩니다. 자료형 기본값 byte 0 short 0 int 0 long 0L float 0.0f double 0.0 char '\u0000' b..
Java Applicaiton의 동작 JDK, JRE, JVM의 개념을 알기에 앞서 우리가 java라는 언어로 만든 프로그램이 어떻게 동작하는 지를 짚고 넘어가면 좋을 것 같습니다. 우리가 코딩을 하면 .java 소스 파일을 만들게 됩니다. .java 소스 파일은 OS가 이해할 수 있는 코드가 아니기에 이를 .class 파일로 변환해 주는, compile 해주는 과정이 필요합니다. 이렇게 compile 된 .class 파일은 Class Loader에 의해서 JVM으로 불러와지게 되고 JVM에서 일련의 과정을 통해 컴퓨터가 이해할 수 있는 기계어로 번역됩니다. 이렇게 번역 된 기계어를 컴퓨터는 이해하고 실행시킴으로써 .java 프로그램이 동작하게 됩니다. JDK, JRE, JVM JDK, JRE, JVM은..