Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions src/Kang_minkyu/report1/Report1_1
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
2-4번 문제 // 다음 중 변수를 잘못 초기화 한 것은?
byte b = 256;
char c = '';
char answer = 'no';
float f = 3.14
double d = 1.4e3f;

정답 : 1, 2, 3, 4
10 changes: 10 additions & 0 deletions src/Kang_minkyu/report1/Report1_2
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
2-7번 번 문제 // 다음 문장들의 출력 결과를 적으세요. 오류가 있는 문장의 경우, '오류' 라고 적으세요.
System.out.println("1" + "2"); - 12
System.out.println(true+""); - true
System.out.println('A' + 'B'); - 131
System.out.println('1' + 2); - 51
System.out.println('1' + '2'); - 99
System.out.println('J' +"ava"); - Java
System.out.println(true + null); - 오류

정답 : 12, true, 131, 51, 99, Java, "오류"
25 changes: 25 additions & 0 deletions src/Kang_minkyu/report1/Report1_3.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package Kang_minkyu.report1;

//2-8. 아래는 변수 x, y, z의 값을 서로 바꾸는 예제이다. 결과와 같이 출력되도록 코드를 넣으세요.
public class Report1_3 {
public static void main(String[] args) {
int x = 1;
int y = 2;
int z = 3;

// 이하 정답
int a = x;

x = y;
y = z;
z = a;

//

System.out.println("x=" + x);
System.out.println("y=" + y);
System.out.println("z=" + z);


}
}
14 changes: 14 additions & 0 deletions src/Kang_minkyu/report2/Report2_1
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
//3-1. 다음 중 형변환을 생략할 수 있는 것은? (모두 고르시오)

byte b = 10;
char ch = 'A';
int i = 100;
long l = 1000L;
-------------------------
1. b = (byte)i;
2. ch = (char)b;
3. short s = (short)ch;
4. float f = (float)l;
5. i = (int)ch;

정답 : 3번, 4번
33 changes: 33 additions & 0 deletions src/Kang_minkyu/report2/Report2_2.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package Kang_minkyu.report2;

//3-2. 다음 연산의 결과와 그 이유를 적으세요.
public class Report2_2 {
public static void main(String[] args) {
int x = 2;
int y = 5;
char c = 'A'; // 'A'의 문자코드는 65


System.out.println(y >= 5 || x < 0 && x > 2);
// 정답 : true / 해석 : 참과 거짓의 형태는, true || false && false 가 된다. 위의 설명에서 &&과 ||중 &&가 우선순위이기에 true값이 출력된다.
System.out.println(y += 10 - x++);
// 정답 : 13 / 해석 : y += 10은 풀어쓰면, y라는 변수에 10을 더한것과 같다. 그리고 x++은 후위형 연산자 이기 떄문에 값이 참조 된 후 증가한다. 그러므로 5(y)+10 - 2 =13
System.out.println(x += 2);
// 정답 : 5 / 해석 : 직전 식에서 x 값이 1증가하여서 5가됨
System.out.println(!('A' <= c && c <= 'Z'));
// 정답 : false / 해석 : 아스키코드(A: 65, c:65, Z:90) 65 <= 65 && 65 <= 90 전부다 참이므로 !true = fals, false 값이 출력된다.
System.out.println('C' - c);
// 정답 : 2 / 해석 : C의 아스키코드에서의 값은 67이다, 따라서 67 - 65는 2이다.
System.out.println('5' - '0');
// 정답 : 5 / 해석 : 위와 마찬가지로 53 - 48을 하면 5이다.
System.out.println(c + 1);
// 정답 : 66 / 해석 : c: 65, 65 + 1은 66이다.
System.out.println(++c);
// 정답 : B / 'A' 의 문자 코드가 증가하여 66이되고, 그에 맞는 문자코드인 B가 출력된다.
System.out.println(c++);
// 정답 : B / 위에서 1증가한 66 즉, B가 그대로 출력된다.
System.out.println(c);
// 정답 : C / 해석 : 위에서 1 증가 후 끝났으므로 내려왔을때는 이미 C이다.

}
}
14 changes: 14 additions & 0 deletions src/Kang_minkyu/report2/Report2_3.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package Kang_minkyu.report2;
//3-3. 아래는 변수의 num 값 중에서 백의 자리 이하를 버리는 코드이다.
//만일 변수 num의 값이 '456'이라면 '400'이 되고, '111'이라면 '100'이 된다.
public class Report2_3 {
public static void main(String[] args) {
int num_1 = 456;
System.out.println(num_1/100 * 100);

int num_2 = 111;
System.out.println(num_2/100 * 100);


}
}
15 changes: 15 additions & 0 deletions src/Kang_minkyu/report2/Report2_4.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package Kang_minkyu.report2;

//3-4. 아래의 코드는 사과를 담는데 필요한 바구니(버켓)의 수를 구하는 코드이다.
//만일 사과의 수가 123개이고 하나의 바구니에는 10개의 사과를 담을 수 있다면, 13개의 바구니가 필요할 것이다.
//알맞은 코드를 넣으시오.
public class Report2_4 {
public static void main(String[] args) {
int numOfApples = 123; // 사과의 개수
int sizeOfBucket = 10; // 바구니의 크기(바구니에 담을 수 있는 사과의 개수)
int numOfBucket = (numOfApples/sizeOfBucket + 1); // 모든 사과를 담는데 필요한 바구니의 수

System.out.println("필요한 바구니의 수 :"+numOfBucket);
}

}
11 changes: 11 additions & 0 deletions src/Kang_minkyu/report2/Report2_5.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package Kang_minkyu.report2;

//3-5. 아래는 변수 num의 값에 따라 '양수', '음수', '0'을 출력하는 코드이다.
//삼항연산자를 이용해서 빈칸에 알맞은 코드를 넣으시오.
//Hint : 삼항 연산자를 두 번 사용할 것!
public class Report2_5 {
public static void main(String[] args) {
int num = 0;
System.out.println(num > 0 ? "양수":num < 0 ? "음수":"0");
}
}
15 changes: 15 additions & 0 deletions src/Kang_minkyu/report2/Report2_6.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package Kang_minkyu.report2;

//3-6. 아래는 화씨(Fahrenheit)를 섭씨(Celcius)로 변환하는 코드이다.
//변환 공식이 'C = 5/9*(F-32)'라고 할 때, 빈 칸에 알맞은 코드를 넣으시오.
// 단, 변환값은 소수점 셋째자리에서 반올림하며, Math.round() 함수를 사용하지 않고 처리할 것!
public class Report2_6 {
public static void main(String[] args) {
int fahrenheit = 100;
float celcius = (int) (5/9f*(fahrenheit - 32) * 100 + 0.5f) / 100f;

System.out.println("Fahrenheit:"+fahrenheit);
System.out.println("Celcius:"+celcius);
}
}
//예상 결과 : Fahrenheit:100, Celcius:37.78
22 changes: 22 additions & 0 deletions src/Kang_minkyu/report3/Report3_1
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// 3-1번 문제
다음의 문장들을 조건식으로 표현해보세요.

//int형 변수 x가 10보다 크고 20보다 작을 때 true인 조건식
정답 : 10 < x && x < 20
//char형 변수 ch가 공백이나 탭이 아닐 때 true인 조건식
정답 : (ch == '' || ch == \t)
//char형 변수 ch가 'x' 또는 'X'일 때 true인 조건식
정답 : ch == 'x' || ch == 'X'
//char형 변수 ch가 숫자('0'~'9')일 때 true인 조건식
정답 : '0' <= ch && ch == '9'
//char형 변수 ch가 영문자(대문자 또는 소문자)일 때 true인 조건식
정답 : ('a' <= ch && ch <= 'z') || ('A' <= ch && ch <= 'Z')
//int형 변수 year가 400으로 나눠떨어지거나 또는 4로 나눠떨어지고 100으로 나눠떨어지지 않을때 true인 조건식
정답 : year % 400 == 0 || year % 4 == 0 && year % 100 != 0
//boolean형 변수 powerOn이 false일 때 true인 조건식
정답 : boolean powerOn = false;
if (!powerOn) {
System.out.println(powerOn);
}
//문자열 참조변수 str이 "yes"일 때 true인 조건식
정답 : str.equals("yes")
46 changes: 46 additions & 0 deletions src/Kang_minkyu/report3/Report3_10.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package Kang_minkyu.report3;

//4-10. 다음은 숫자맞추기 게임을 작성한 것이다. 1과 100사이의 값을 반복적으로 입력해서
//컴퓨터가 생각한 값을 맞추면 게임이 끝난다.
//사용자가 값을 입력하면, 컴퓨터는 자신이 생각한 값과 비교해서 결과를 알려준다.
//사용자가 컴퓨터가 생각한 숫자를 맞추면 게임이 끝나고 몇 번 만에 숫자를 맞췄는지 알려준다.
public class Report3_10 {
public static void main(String[] args) {
// 1~100사이의 임의의 값을 얻어서 answer에 저장한다.
int answer = (int)(Math.random() * 100) + 1;
int input = 0; //사용자입력을 저장할 공간
int count = 0; //시도횟수를 세기위한 변수

// 화면으로 부터 사용자입력을 받기 위해서 Scanner클래스 사용
java.util.Scanner s = new java.util.Scanner(System.in);
do {
count++;
System.out.print("1과 100사이의 값을 입력하세요 : ");
input = s.nextInt(); //입력받은 값을 변수 input에 저장한다.

if (answer > input) {
System.out.println("더 큰 숫자를 입력하세요");
}else if (answer < input) {
System.out.println("더 작은 숫자를 입력하세요");
}else {
System.out.println("정답입니다.");
System.out.println("시도횟수는" + count + " 번입니다.");
break;
}
} while(true); //무한반복문
} // end of main
} // end of class
//예상 결과
//1과 100사이의 값을 입력하세요 : 50
//더 큰 수를 입력하세요.
//1과 100사이의 값을 입력하세요 : 75
//더 큰 수를 입력하세요.
//1과 100사이의 값을 입력하세요 : 87
//더 작은 수를 입력하세요.
//1과 100사이의 값을 입력하세요 : 80
//더 작은 수를 입력하세요.
//1과 100사이의 값을 입력하세요 : 77
//더 작은 수를 입력하세요.
//1과 100사이의 값을 입력하세요 : 76
//맞혔습니다.
//시도횟수는 6번입니다.
14 changes: 14 additions & 0 deletions src/Kang_minkyu/report3/Report3_2.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package Kang_minkyu.report3;
//3-2. 1부터 20까지의 정수중에서 2 또는 3의 배수가 아닌 수의 총합을 구하세요.
public class Report3_2 {
public static void main(String[] args) {
int sum = 0;

for (int i = 1; i <= 20; i++) {
if (!(i%2 == 0 || i%3 == 0)){
sum += i;
}
}
System.out.println("sum="+sum);
}
}
13 changes: 13 additions & 0 deletions src/Kang_minkyu/report3/Report3_3.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package Kang_minkyu.report3;
//3-3. 1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+...+10)의 결과를 계산하세요.
public class Report3_3 {
public static void main(String[] args) {
int sum = 0;
int totalSum = 0;
for (int i=0; i <= 10; i++) {
sum += i;
totalSum += sum;
}
System.out.println("totalSum = " + totalSum);
}
}
23 changes: 23 additions & 0 deletions src/Kang_minkyu/report3/Report3_4.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package Kang_minkyu.report3;

//3-4. 1+(-2)+3+(-4)+...과 같은 식으로 계속 더해나갔을 때,
//몇까지 더해야 총합이 100 이상이 되는지 구하세요.
public class Report3_4 {
public static void main(String[] args) {
int sum = 0;
int num = 0;

while (true) {
num++;
if (num % 2 == 0) {
sum -= num;
} else {
sum += num;
}
if (sum >= 100) {
break;
}
}
System.out.println(num);
}
}
17 changes: 17 additions & 0 deletions src/Kang_minkyu/report3/Report3_5.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package Kang_minkyu.report3;

//3-5. 다음의 for문을 while문으로 변경하세요.
public class Report3_5 {
public static void main(String[] args) {
int i = 0;
while (i <= 10) {
int j = 0;
while (j <= i) {
System.out.print("*");
j++;
}
System.out.println();
i++;
}
}
}
14 changes: 14 additions & 0 deletions src/Kang_minkyu/report3/Report3_6.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package Kang_minkyu.report3;

//3-6. 두 개의 주사위를 던졌을 때, 눈의 합이 6이 되는 모든 경우의 수를 출력하는 프로그램을 작성하세요.
public class Report3_6 {
public static void main(String[] args) {
for (int i = 1; i <=6; i++) {
for (int j = 1; j <=6; j++){
if (i+j == 6) {
System.out.println(i + "+" + j + "=" + (i+j));
}
}
}
}
}
19 changes: 19 additions & 0 deletions src/Kang_minkyu/report3/Report3_7.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package Kang_minkyu.report3;

import java.util.Arrays;

//3-7. 숫자로 이루어진 문자열 str이 있을 때, 각 자리의 합을 더한 결과를 출력하는 코드를 완성하세요.
//만일 문자열이 "12345"라면, ‘1+2+3+4+5’의 결과인 15를 출력이 출력되어야 합니다.
public class Report3_7 {
public static void main(String[] args) {
String str = "12345";
int sum = 0;
for (int i = 0; i < str.length(); i++) {
sum += (int)str.charAt(i) - 48;
System.out.println((int)str.charAt(i)-48);
System.out.println(sum);
}

System.out.println("sum=" + sum);
}
}
9 changes: 9 additions & 0 deletions src/Kang_minkyu/report3/Report3_8.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package Kang_minkyu.report3;

//4-8. Math.random()을 이용해서 1부터 6 사이의 임의의 정수를 변수 value에 저장하는 코드를 완성하세요.
public class Report3_8 {
public static void main(String[] args) {
int value = (int)(Math.random() * 7);
System.out.println("value:"+value);
}
}
20 changes: 20 additions & 0 deletions src/Kang_minkyu/report3/Report3_9.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package Kang_minkyu.report3;

//4-9. int 타입의 변수 num이 있을 때, 각 자리의 합을 더한 결과를 출력하는 코드를 완성하세요.
//만일 변수 num의 값이 12345라면, ‘1+2+3+4+5’의 결과인 15를 출력하세요.
//문자열로 변환하지 말고 숫자로만 처리하세요.
public class Report3_9 {
public static void main(String[] args) {
int num = 12345;
int sum = 0;

while (num > 0) {
sum += num%10;
num /= 10;

}


System.out.println("sum="+sum);
}
}//예상 결과 : sum=15
11 changes: 11 additions & 0 deletions src/Kang_minkyu/report4/Report4_1
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
//4-1. 다음은 배열을 선언하거나 초기화한 것이다. 잘못된 것을 고르고 그 이유를 설명하세요.
1. int[] arr[];
2. int[] arr = {1,2,3,};
4. int[] arr = new int[5];
5. int[] arr = new int[5]{1,2,3,4,5};
6. int arr[5];
7. int[] arr[] = new int[3][];


정답 : 5([]안에 숫자를 넣어 배열의 크기를 지정할 수 없다, {}안에 들어가는 만큼 자동으로 생성해준다.)
6(배열 선언시에는 배열의 크기를 정할 수 없다.)
9 changes: 9 additions & 0 deletions src/Kang_minkyu/report4/Report4_2
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
//4-2. 다음과 같은 배열이 있을 때, arr[3].length의 값은?
int[][]arr ={
{5,5,5,5,5},
{10,10,10},
{20,20,20,20},
{30,30}
};

정답 : 2 / 0,1 / length는 인덱스식이 아닌 갯수로 세어서 출력해주기 떄문이다.
Loading