Java 39

[Array] 동전 거슬러주기 _ Part 2 (응용)

● 동전을 거슬러주자 다만 part1과 달리 이번엔 동전의 개수가 정해져 있다. 문제 (출처: 자바의 정석 연습문제) public class Practice07 { public static void main(String[] args) { if (args.length != 1) { System.out.println("USAGE: java Exercise5_7 3120"); System.exit(0); } int money = Integer.parseInt(args[0]); //커맨드라인으로 받은 변수는 문자열이므로 정수로 변환한다. System.out.println("money=" + money); int[] coinUnit = { 500, 100, 50, 10 }; int[] coin = { 5, 5, ..

Java/Daily-Java 2021.04.15

[Array] 동전 거슬러주기 _ Part 1

● Java를 이용한 동전 거슬러주는 코드를 작성해보자 문제 조건 : A. 내가 가진 동전의 종류 : 500원 100원 50원 10원 B. 동전의 개수는 무제한 C. 500원부터 10원 순서로 큰 금액의 동전을 우선적으로 거슬러 줘야 한다 D. 받은돈(money) : 2680 Result↓ money=2680 500 : 5 100 : 1 50 : 1 10 : 3 1) 배열 설정 int [] coinUnit = {500,100,50,10}; int [] coinNum = new int [4]; // coinUnit 당 거슬러 줄 동전의 개수를 넣어줄 배열 출력 시 필요 2) 거슬러 줄 동전의 갯수 구하기 int money = 2680; // 거슬러 줘야 할 돈의 액수는 중요치 않으므로 조건에 안 넣음 26..

Java/Daily-Java 2021.04.15

[Array] 배열을 응용한 " * " 출력 예제

● 배열을 응용한 " * " 출력 예제 int[] Arr = { 1,4,4,3,1,4,4,2,1,3,2 }; Q : 주어진 배열에 중복하는 숫자의 개수만큼 각각 * 를 출력하는 코드를 작성하라 Result ↓ 3*** 2** 2** 4**** 1) 배열을 선언하자 int[] Arr = { 1,4,4,3,1,4,4,2,1,3,2 }; 그리고 * 를 찍어줄 "횟수"를 담아줄 배열을 만든다. int[] Arr2 = new int[4]; // 4개의 숫자의 중복횟수를 넣을꺼니 인덱스는4개 2) 무엇을 구해야 하는가 이것을 어떻게 프로그래밍으로 구현할것인가 우선 우리는 Arr에서의 중복되는 숫자의 횟수를 구해야한다. 그리고 그값을 Arr2에 넣을것이다. Arr2[0] = 중복횟수 (+1+1+1) Arr2[1] =..

Java/Daily-Java 2021.04.13

[Array] 2차원 배열 응용

● 2차원 배열을 이용하여 다음의 결과를 출력해보자 실행결과 각행의 맨 우측은 각행의 합, 맨 아래는 각 열의 합, 6행 4열 은 전체 성분의 합 Result↓ 100 100 100 300 20 20 20 60 30 30 30 90 40 40 40 120 50 50 50 150 240 240 240 720 다시 한번 생각해봐도 잘 모르겠으면 일단 손으로 써보면서 생각해보자, 손으로 프로그래밍의 동작 순서를 가시화하면서 공부하는 게 생각보다 많이 괜찮다. 1) 2차 배열을 구상하자 빨간색은 주어진 배열이고 파란색은 합과 동시에 빨간색 배열을 옮겨 넣을 배열이다. 배열의 확장 이러한 아이디어가 떠오르지않는다면 그냥 이런 문제를 머리에 유형화를 시켜두는 게 정신건강에 좋다 2) 실행순서 우선 생각의 편의를 위..

Java/Daily-Java 2021.04.13

[객체지향] 클래스, 객체, 인스턴스

● 클래스, 객체, 인스턴스? 대체 이것들은 무엇인가 프로그래밍을 접하면서 너무나도 어려웠던 개념들이다. 개발에 손을 대고 나서 2개월 차에야 감을 잡은 개념들이었던 거 같다 이해하기 힘든 만큼 한번 이해해놓으면 프로그래밍을 하는 데 있어서 시야가 넓어지는 느낌이고 코딩을 하면서 코드 간의 관계를 이해하는데 도움이 많이 된다. 클래스(class)란 무엇인가 하면 '객체'를 정의해놓은 것이라고 말할 수 있다. 흔히 쓰는 비유중 클래스는 설계도이고 객체는 그 설계도로 만든 제품이라고 표현한다. 클래스는 설계도이고 설계도로 만든 제품이 바로 객체이다. 그리고 클래스에서 객체를 생성하는 과정을 우리는 '인스턴스화(instantiate)'라고 부르며, 인스턴스(instance)와 객체는 같은 말이라고 봐도 무방하..

Java/Java Study 2021.04.12

[객체지향] 객체지향 프로그래밍 (6/2일 추가내용 + 다형성)

● 객체지향 프로그래밍 객체지향 프로그래밍이란 프로그램의 규모가 점점 커지고, 그 프로그램을 사용하는 사용자들의 요구가 빠르게 변화해가는 상황을 기존의 절차적 언어(절차적 프로그래밍)로는 극복하기 어렵다는 상황에까지 이르면서 1995년 자바의 발표 이후 객체지향 언어는 프로그래밍 언어의 주류로 자리 잡게 되었다. '객체지향 언어' 란 기존의 프로그래밍 언어에 약간의 룰을 접한 것으로써, 아주 간단하게 이 규칙에 대해 말하자면 코드를 유연하게 만들기 위한 룰이라고 볼 수 있다. 이러한 룰을 적용시킨 이유는 앞서 말한 빠른 시대적 변화에 대응하기 위하여 많은 개발자들이 프로그램에 대한 개발과 유지보수를 용이하게 만들기 위함이다. 이러한 규칙을 접목시킨 객체지향 언어의 특징이란 다음과 같다. 1. 코드의 재사..

Java/Java Study 2021.04.12

[Array] 행렬의 곱셈

● Array를 이용한 행렬의 계산 코드 1) 행렬의 곱셈 조건 행렬의 곱셈에 대해 간단히 알아야 할 규칙 A =(axb) , B=(bxc) AB = (axc) 2) 코드구상 행렬을 담을 배열을 선언&생성하자 int[][] m1 = { // 2x3 행렬 {1,2,3}, {4,5,6} }; int[][] m2 = {// 3x2 행렬 {1,2}, {3,4}, {5,6} }; final int ROW = m1.length; // 행렬의 연산결과로 생긴 행의 길이 final int COL = m2[0].length; // 열의 길이 int[][] m3 = new int[ROW][COL]; //연산의 결과가 들어갈 배열 결과값 행렬 AB = (axc) 의 값을 출력하기 위해 (행의 길이-1)번의 연산을 (열의 길..

Java/Daily-Java 2021.04.11

java 스터디 2주차

쉽게 배우는 자바 COURCE CHAPTER 11-1 ~ 2 ˙ 입력과 출력 입력과 출력(input & output) 입력 정보는 문자열, 숫자 등의 아규먼트가 될 수도 있고, 파일, 네트워크를 통해 받은 정보, 소리, 다른 프로그램에서 출력된 정보 등이 될 수 있다. 적절한 입력값을 넣어서 우리가 원하는 결과를 출력시킬 수 있다는 것, 그리고 우리는 이런 입력값을 일일이 바꾸지 않고 상황에 따른 입력값을 넣어서 프로그램을 제어할 수도 있다 JOptionPane. 객체와 showInputDialog의 메서드를 이용하여 이용자에게 Enter a id라는 입력창을 주고 실행할 때마다 입력값을 넣을 수 있게 해 줌으로써 아파트의 엘리베이터와 조명을 통제할 수 있는 프로그램을 만들었다. ˙ argument를 입..

Java/Java Study 2021.01.21

java 스터디 1주차(1/11~17)

쉽게 배우는 자바 COURCE CHAPTER 4-1 ~ 4-3 ˙ JAVA공부의 시작 'eclips' JAVA라는 객체 지향 프로그래밍 언어를 이용하여 코드를 짜고 디버깅을 하기 위해선, 이를 도와주는 통합 개발 환경 (IDE, Integrated Development Environment)가 필요하고 이번 강의를 들으며 내가 쓰는 IDE는 바로 eclips이다. ˙ Eclips 그리고 Compile eclips의 핵심은 바로 compile! 우리가 이클립스를 이용하여 'JAVA SOURCE CODE(. JAVA)' 내가 하고자 하는 일을 지시하는 코드를 작성, 이 코드를 컴퓨가 읽기 좋게끔 변환하여 JAVA APP(. CLASS), 클래스를 만드는 것이 바로 'COMPILE' ▩ 생각해보기 1) 클래스..

Java/Java Study 2021.01.15