| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- 배열함수
- 자바기초
- apachetomcat
- MySQL
- 자바스크립트배열
- 저축장려금
- StringBuffer
- 신한은행청년희망적금
- 자바문자열연결
- Eclipse
- if문
- 이클립스
- Java
- 자바강의노트
- 자바
- 참조변수
- 2022청년희망적금
- 자바공부
- 자바배열
- 개발공부
- 공부
- 자바스크립트
- 청년희망적금
- 이클립스설치
- mysql오류
- 청년희망적금미리보기
- insert
- equals()
- ToString()
- 청년적금
- Today
- Total
eterno
백준 문제 풀이(자바) : 8393, 2753, 10950, 10871, 10952, 14681 본문

자바 공부하는 학생이 푸는 백준 문제풀이 입니다.
제가 이해한 대로 푸는 것이기 때문에 내용이 틀릴 수도 있으니 참고용으로 봐주시고
혹시 틀린 부분이 있다면 말씀해주세요!
8393번 문제 : 합
8393번: 합
n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.
www.acmicpc.net

소스코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int nCnt = 0;
for(int i=1; i<=n; i++) {
nCnt = nCnt + i;
}
System.out.println(nCnt);
sc.close();
}
}
풀이과정)
Scanner를 사용하여 사용자로부터 값을 입력받고 더한 값들을 담을 공간인 nCnt를 선언하였다.
for문을 사용하여 사용자가 입력한 값까지 반복되는 반복문을 만들고
nCnt에 i의 값을 누적하여 더한다.

2753번 문제 : 윤년
2753번: 윤년
연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서
www.acmicpc.net

소스코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int year = sc.nextInt();
if((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)) {
System.out.println("1");
} else {
System.out.println("0");
}
sc.close();
}
}
문제풀이)
Scanner를 사용하여 사용자로부터 값을 입력받고
나머지 연산을 써서 년도가 4로 나눴을때 0이 나오면서 년도를 100으로 나눴을 때 나머지가 0이 아니거나 년도를 400으로 나눴을 때 0일때 1일 출력되도록 if문을 썼다.

10950번 문제 : A + B - 3
10950번: A+B - 3
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net

소스코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i=0; i<n ; i++) {
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(a+b);
}
sc.close();
}
}
문제풀이)
Scanner를 사용하여 사용자로부터 값을 입력 받아야하고
사용자로부터 받은 값 까지 반복문을 실행하기 위해 입력받을 값을 for문 안에 넣어 두 수의 합을 반환하였다.

10871번 문제 : X보다 작은 수 구하기
10871번: X보다 작은 수
첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.
www.acmicpc.net

소스코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int X = sc.nextInt();
int[] z = new int[N];
for(int i=0; i<N; i++) {
z[i] = sc.nextInt();
if(z[i] < X) {
System.out.print(z[i] + " ");
}
}
sc.close();
}
}
풀이과정)
정수 N과 X는 사용자로부터 받아야하는 값이여서 Scanner를 사용해 입력받는다.
N개의 숫자를 나열해야하니까 배열을 사용해서 수열 A의 값을 사용자로부터 입력 받는다.
만약 배열값이 입력받은 X보다 작은 경우 해당 배열 값을 반환하고 각 값들은 공백으로 구분해 출력하기위해 공백을 추가하였다.

10952번 문제 : A+B-5
10952번: A+B - 5
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net

소스코드
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
for(int i=0; ; i++) {
int A = sc.nextInt();
int B = sc.nextInt();
if(A+B == 0) {
break;
}
System.out.println(A+B);
}
sc.close();
}
}
풀이과정)
두 수를 계속 입력받으려면 반복문 안에서 입력받아야 한다.
어떤 연산 결과 값이 나왔을 때 for문 대신 if문 사용하면 조건식 생략가능하기때문에
for문의 조건식을 생략하고 for문안에 if문을 넣어 두 수의 합이 0이되면 문장을 종료하도록 하였다.
두 수의 합이 0인결과값은 출력되지 않아야 함으로 if문이 끝나는 시점에 두 수의 합을 출력하였다.

14681번 문제 : 사분면 고르기

소스코드
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int y = sc.nextInt();
if(x > 0 && y > 0) {
System.out.println("1");
}
if(x < 0 && y > 0) {
System.out.println("2");
}
if(x < 0 && y < 0) {
System.out.println("3");
}
if(x > 0 && y < 0) {
System.out.println("4");
}
sc.close();
}
}
풀이과정)

Scanner를 사용하여 사용자로부터 두 수 x, y 값을 입력받고 사분면의 조건에 따라 if문으로 조건에 맞는 값을 반환하였다.

'JAVA' 카테고리의 다른 글
| [JAVA] 문자열을 연결하는 함수 StringBuffer 와 StringBuild (0) | 2023.02.08 |
|---|---|
| [JAVA] 문자열 연결하는 메서드 String.concat() (1) | 2023.02.08 |
| [JAVA] Object 클래스(toString(), equals(), hashCode(), clone() ) (2) | 2023.02.07 |