1. 자바 기초 문법
1-1. 변수와 자료형
* 변수: 데이터를 저장하는 공간.
* 자료형: 변수의 데이터 타입을 나타냄.
자료형 | 크기 | 예시 |
int | 4 bytes | 정수형 (1, 2, 100) |
double | 8 bytes | 실수형 (3.14, 2.71) |
char | 2 bytes | 문자 ('A', 'b') |
String | N/A | 문자열 ("Hello") |
boolean | 1 bit | 논리형 (true/false) |
(예제: 변수 선언과 초기화)
int age = 25; // 정수형 변수
double pi = 3.14; // 실수형 변수
char initial = 'J'; // 문자형 변수
String name = "Java"; // 문자열 변수
boolean isTrue = true; // 논리형 변수
1-2. 조건문
- 조건에 따라 실행 흐름을 제어하는 구조이다.
* if-else 조건문
int score = 85;
if (score >= 90) {
System.out.println("A학점");
} else if (score >= 80) {
System.out.println("B학점");
} else {
System.out.println("C학점");
}
* switch 문
- 특정 값에 따라 여러 경로 중 하나를 선택.
int month = 3;
switch (month) {
case 1:
System.out.println("January");
break;
case 2:
System.out.println("February");
break;
case 3:
System.out.println("March");
break;
default:
System.out.println("Invalid month");
}
1.3 반복문
- 코드 블록을 여러 번 실행하는 구조.
* for 문
for (int i = 1; i <= 5; i++) {
System.out.println("Count: " + i);
}
* while 문
int count = 1;
while (count <= 5) {
System.out.println("Count: " + count);
count++;
}
2. 간단한 연산자
- 자바에서 제공하는 기본 연산자들이다.
연산자 | 기능 | 예시 |
+ | 덧셈 | a+b |
- | 뺄셈 | a-b |
* | 곱셈 | a*b |
/ | 나눗셈 (몫) | a/b |
% | 나머지 | a%b |
== | 같음 비교 | a==b |
!= | 같지 않음 | a!=b |
&& | 논리 AND | a&&b |
` | ` |
(예제: 덧셈 계산기)
int num1 = 10;
int num2 = 20;
int sum = num1 + num2;
System.out.println("Sum: " + sum); // 출력: Sum: 30
3. 간단한 실습 문제
* 문제 1: 두 수의 합 계산
- 두 정수를 입력받아 합을 출력하는 프로그램을 작성하세요.
(입력 예시)
10
20
(출력 예시)
30
(코드)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter first number: ");
int num1 = sc.nextInt();
System.out.print("Enter second number: ");
int num2 = sc.nextInt();
int sum = num1 + num2;
System.out.println("Sum: " + sum);
}
}
4. 백준 문제 도전
* 문제: 두 수 비교하기 (백준 1330)
* 문제 설명
- 두 정수 A와 B가 주어졌을 때, 다음 세 가지 결과 중 하나를 출력하세요.
- A > B → ">"
- A < B → "<"
- A == B → "=="
(입력 예시)
10 20
(출력 예시)
<
(코드)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int A = sc.nextInt();
int B = sc.nextInt();
if (A > B) {
System.out.println(">");
} else if (A < B) {
System.out.println("<");
} else {
System.out.println("==");
}
}
}
5. 추가 실습 문제
* 문제 1: 홀수 / 짝수 판별
* 문제 설명
- 사용자로부터 정수를 입력받아, 해당 정수가 홀수인지 짝수인지 출력하는 프로그램을 작성하세요.
(입력 예시)
10
(출력 예시)
짝수입니다.
(코드)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("숫자를 입력하세요: ");
int num = sc.nextInt();
if (num % 2 == 0) {
System.out.println("짝수입니다.");
} else {
System.out.println("홀수입니다.");
}
}
}
* 문제 2: 구구단 출력
* 문제 설명
- 사용자로부터 입력받은 숫자에 대한 구구단을 출력하는 프로그램을 작성하세요.
(입력 예시)
5
(출력 예시)
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
...
5 * 9 = 45
(코드)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("출력할 구구단 단수를 입력하세요: ");
int n = sc.nextInt();
for (int i = 1; i <= 9; i++) {
System.out.println(n + " * " + i + " = " + (n * i));
}
}
}
* 문제 3: 점수에 따른 학점 계산
* 문제 설명
- 사용자가 입력한 점수에 따라 학점을 계산하는 프로그램을 작성하세요.
- 조건
- 90점 이상: A
- 80점 이상 90점 미만: B
- 70점 이상 80점 미만: C
- 60점 이상 70점 미만: D
- 60점 미만: F
(입력 예시)
85
(출력 예시)
B
(코드)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("점수를 입력하세요: ");
int score = sc.nextInt();
if (score >= 90) {
System.out.println("A");
} else if (score >= 80) {
System.out.println("B");
} else if (score >= 70) {
System.out.println("C");
} else if (score >= 60) {
System.out.println("D");
} else {
System.out.println("F");
}
}
}
* 문제 4: 최소/최대값 찾기
* 문제 설명
- 사용자로부터 입력받은 3개의 숫자 중 최소값과 최대값을 출력하는 프로그램을 작성하세요.
(입력 예시)
12 7 15
(출력 예시)
최소값: 7
최대값: 15
(코드)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("세 개의 숫자를 입력하세요: ");
int num1 = sc.nextInt();
int num2 = sc.nextInt();
int num3 = sc.nextInt();
int min = Math.min(num1, Math.min(num2, num3));
int max = Math.max(num1, Math.max(num2, num3));
System.out.println("최소값: " + min);
System.out.println("최대값: " + max);
}
}
* 문제 5: 특정 범위의 합 구하기
* 문제 설명
- 사용자로부터 두 개의 숫자를 입력받아, 해당 범위에 있는 모든 정수의 합을 구하세요.
(작은 수부터 큰 수까지의 합)
(입력 예시)
1 5
(출력 예시)
범위의 합: 15
(코드)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("두 숫자를 입력하세요: ");
int num1 = sc.nextInt();
int num2 = sc.nextInt();
int start = Math.min(num1, num2);
int end = Math.max(num1, num2);
int sum = 0;
for (int i = start; i <= end; i++) {
sum += i;
}
System.out.println("범위의 합: " + sum);
}
}
* 문제 6: 삼각형 출력
* 문제 설명
- 사용자로부터 숫자를 입력받아, 해당 숫자만큼의 높이를 가진 왼쪽 정렬된 삼각형을 출력하세요.
(입력 예시)
5
(출력 예시)
*
**
***
****
*****
(코드)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("삼각형의 높이를 입력하세요: ");
int height = sc.nextInt();
for (int i = 1; i <= height; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
* 문제 7: 팩토리얼 계산
* 문제 설명
- 사용자로부터 숫자를 입력받아 해당 숫자의 팩토리얼을 계산하는 프로그램을 작성하세요.
(팩토리얼: n! = n x (n-1) x ... x 1)
(입력 예시)
5
(출력 예시)
5! = 120
(코드)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("팩토리얼을 계산할 숫자를 입력하세요: ");
int num = sc.nextInt();
int factorial = 1;
for (int i = 1; i <= num; i++) {
factorial *= i;
}
System.out.println(num + "! = " + factorial);
}
}
* 문제 8: 피보나치 수열
* 문제 설명
- 사용자로부터 입력받은 숫자까지의 피보나치 수열을 출력하는 프로그램을 작성하세요.
(피보나치 수열: 0, 1, 1, 2, 3, 5, 8, ...)
(입력 예시)
7
(출력 예시)
0 1 1 2 3 5 8
(코드)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("출력할 피보나치 수열 항의 개수를 입력하세요: ");
int n = sc.nextInt();
int a = 0, b = 1;
System.out.print(a + " " + b + " ");
for (int i = 3; i <= n; i++) {
int next = a + b;
System.out.print(next + " ");
a = b;
b = next;
}
}
}
'코딩 테스트' 카테고리의 다른 글
Day 3 문자열 처리와 2차원 배열 강의 (0) | 2024.12.22 |
---|---|
Day 2 함수와 배열 (2) | 2024.12.20 |