백준 입출력과 사칙연산 Java 풀이
아주 기본적인 브론즈 단계의 문제지만 혹시나 저처럼 컴파일 에러를 마주쳐서 당황하신 분들이나 자바 쌩초보이신분들을 위해서 작성했습니다.
2557. Hello World
백준 자바 상식❗️
1. 클래스 명을 Main으로 지정해줘야 컴파일 에러가 안니다!
2. 당연히 public static void main(String[] args) { } 작성도 해야 된다.
문제 : https://www.acmicpc.net/problem/2557
풀이 :
public class Main {
public static void main(String[] args) {
System.out.print("Hello World!");
}
}
백준을 처음 접하신 분들은 코드를 알맞게 작성했는데 컴파일 에러가 발생해서 당황할 수 있습니다(저두 그랬어요...)
당황하지말고 클래스 명, 세미콜론을 다시 확인합시다!
10718. We love kriii
문제 : https://www.acmicpc.net/problem/10718
풀이 :
public class Main{
public static void main(String[] args) {
System.out.println("강한친구 대한육군");
System.out.println("강한친구 대한육군");
}
}
10171. 고양이
문제 : https://www.acmicpc.net/problem/10171
풀이 :
public class Main {
public static void main(String args[]) {
System.out.println(
"\\ /\\\n"+
" ) ( \')\n"+
"( / )\n"+
" \\(__)|"
);
}
}
이스케이프 문자를 고려해서 작성하면 됩니다!
제대로 작성했는데도 "출력 형식이 잘못되었습니다"라고 결과가 나오면 예제 출력을 그대로 복사해서 이스케이프 문자로 바꿔준 후 출력하시면 됩니다
❓ 이스케이프 문자를 모르실 경우에는 ..
10172. 개
문제 : https://www.acmicpc.net/problem/10172
풀이 :
public class Main {
public static void main(String args[]) {
System.out.println(
"|\\_/|\n"+
"|q p| /}\n"+
"( 0 )\"\"\"\\\n"+
"|\"^\"` |\n"+
"||_/=\\\\__|"
);
}
}
10171 고양이 문제랑 마찬가지로 이스케이프 문자를 고려해서 출력합니다
1000. A+B
문제 : https://www.acmicpc.net/problem/1000
풀이 :
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static void main(String args[]) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] line = br.readLine().split(" ");
int num1 = Integer.parseInt(line[0]);
int num2 = Integer.parseInt(line[1]);
bw.write(String.valueOf(num1+num2));
bw.flush();
bw.close();
}
}
자바에서는 입력을 받을때 주로 scanner와 BufferedReader를 사용합니다.
❓ BufferedReader를 사용하는 이유에 대해 자세히 알고 싶으시면
게시글 작성 후 링크 추가 예정
readLine을 읽어온 후 split(" ")을 사용하여 띄워쓰기를 구분해 각각 num1, num2라는 변수에 담아줍니다.
String[]으로 받아왔기 때문에 parseInt()를 이용하여 String타입의 숫자를 int타입으로 변환해주고, 배열이니까 인덱스를 이용합니다.
BufferedWriter를 이용하여 num1+num2 값을 출력하면 끝!
10998. AXB
문제 : https://www.acmicpc.net/problem/10998
풀이 :
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String args[]) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] line = br.readLine().split(" ");
int num1 = Integer.parseInt(line[0]);
int num2 = Integer.parseInt(line[1]);
bw.write(String.valueOf(num1*num2));
bw.flush();
bw.close();
}
}
1000번 풀이 방식과 같습니다. * 연산자를 이용해서 곱해주면 끝이죠?
10998. AXB
문제 : https://www.acmicpc.net/problem/1008
풀이 :
import java.io.*;
public class Main {
public static void main(String args[]) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] line = br.readLine().split(" ");
double num1 = Integer.parseInt(line[0]);
double num2 = Integer.parseInt(line[1]);
bw.write(String.valueOf(num1/num2));
bw.flush();
bw.close();
}
}
주의해야 할 점이 상대오차 또는 절대오차 범위 이하여야 합니다.
오차 범위를 벗어나지 않게 하기 위해서는 반드시 double형으로 출력을 해주어야 합니다.
10869. 사칙연산
문제 : https://www.acmicpc.net/problem/10869
풀이 :
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String args[]) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] line = br.readLine().split(" ");
int num1 = Integer.parseInt(line[0]);
int num2 = Integer.parseInt(line[1]);
bw.write(String.valueOf(num1+num2+"\n"));
bw.write(String.valueOf(num1-num2+"\n"));
bw.write(String.valueOf(num1*num2+"\n"));
bw.write(String.valueOf(num1/num2+"\n"));
bw.write(String.valueOf(num1%num2));
bw.flush();
bw.close();
}
}
"\n"을 사용해주는거 외에 앞 문제와 다를게 없습니다
10926. ??!
문제 : https://www.acmicpc.net/problem/10926
풀이 :
import java.io.*;
public class Main {
public static void main(String args[]) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String id = br.readLine();
bw.write(id+"??!");
bw.flush();
bw.close();
}
}
문제를 읽어보면 입력받는 id값 + ??!가 출력이 되면 됩니다
18108. 1998년생인 내가 태국에서는 2541년생?!
문제 : https://www.acmicpc.net/problem/18108
풀이 :
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String args[]) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int year = Integer.parseInt(br.readLine());
bw.write(String.valueOf(year-543));
bw.flush();
bw.close();
}
}
불기 연도를 서기 연도로 바꿔주면 됩니다.
불기 연도 : 서기연도 + 544
10430. 나머지
문제 : https://www.acmicpc.net/problem/10430
풀이 :
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] line = br.readLine().split(" ");
int a = Integer.parseInt(line[0]);
int b = Integer.parseInt(line[1]);
int c = Integer.parseInt(line[2]);
bw.write(String.valueOf((a+b)%c+"\n"));
bw.write(String.valueOf(((a%c)+(b%c))%c+"\n"));
bw.write(String.valueOf((a*b)%c+"\n"));
bw.write(String.valueOf(((a%c)*(b%c))%c));
bw.flush();
bw.close();
}
}
앞에 사칙연산 문제처럼 접근해서 풀면 됩니다
2588. 곱셈
문제 : https://www.acmicpc.net/problem/2588
풀이 :
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int num1 = Integer.parseInt(br.readLine());
int num2 = Integer.parseInt(br.readLine());
int num3 = num1*(num2%10);
int num4 = num1*((num2%100)/10);
int num5 = num1*(num2/100);
int num6 = num3+num4*10+num5*100;
bw.write(String.valueOf(num3+"\n"));
bw.write(String.valueOf(num4+"\n"));
bw.write(String.valueOf(num5+"\n"));
bw.write(String.valueOf(num6+"\n"));
bw.flush();
bw.close();
}
}
각각 (3) : 472*5, (4) : 472*8, (5) : 472*3 입니다
(6)은 (3), (4)*10, (5)*100을 더한 값이니 연산하여 코드 작성해주면 됩니다
25083. 새싹
문제 : https://www.acmicpc.net/problem/25083
풀이 :
public class Main {
public static void main(String[] args) {
System.out.println(
" ,r'\"7\n"+
"r`-_ ,' ,/\n"+
" \\. \". L_r'\n"+
" `~\\/\n"+
" |\n"+
" |"
);
}
}
10171, 10172 문제와 유사한 유형으로 이스케이프 문자를 고려하여 작성하면 됩니다
백준 알고리즘 풀이 백준 사칙연산 백준 입출력과 사칙연산 자바 백준 입출력과 사칙연산 자바 풀이 백준 입출력과 사칙연산 java 백준 java 백준 알고리즘 백준 브론즈 백준 브론즈 풀이
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 별 찍기 Java 풀이 (2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2522) (0) | 2022.07.24 |
---|