어제 풀던 백준 문제 단계별로 풀어보기 중 1단계 입출력과 사칙연산 나머지 문제들을 풀어보았다.
8) 문제 번호 18108 / 1998년생인 내가 태국에서는 2541년생?!
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int y = scanner.nextInt();
System.out.println(y-543);
}
}
문제는 불기 연도를 서기 연도로 변환하는 문제이다. 불기 연도를 y에 입력받은 후 543을 빼서 서기 연도를 출력하였다.
9) 문제 번호 10430 / 나머지
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int A = scanner.nextInt();
int B = scanner.nextInt();
int C = scanner.nextInt();
System.out.println((A+B)%C);
System.out.println(((A%C) + (B%C))%C);
System.out.println((A*B)%C);
System.out.println(((A%C) * (B%C))%C);
}
}
10) 문제 번호 2588 / 곱셈
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = b/100;
int d = (b/10)%10;
int f = ((b%100)%10);
System.out.println(a*f);
System.out.println(a*d);
System.out.println(a*c);
System.out.println(a*b);
}
}
처음 틀린 건 c, d, f 다 잘 구해놓고 출력문 순서를 거꾸로 출력해서 틀림.
11) 문제 번호 11382 / 꼬마 정민
이 문제에서 희대의 뻘짓이 등장했다. 처음 정답으로 맞춘 코드가 아래 코드
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String A = scanner.nextLine();
String[] Aa = A.split(" ");
long a = Long.parseLong(Aa[0]);
long b = Long.parseLong(Aa[1]);
long c = Long.parseLong(Aa[2]);
System.out.println(a+b+c);
}
}
문제에서 첫 번째 줄에 세 수를 공백을 사이에 두고 주어진다길래 공백을 따로 입력받아야 하는건가.. 하다가 생각해낸게 첫 번째 줄을 통째로 문자열로 받고, 문자열 사이 공백을 구분자로 해서 배열로 바꾼 뒤 각 문자 배열을 정수형으로 바꾸는 법을 생각했고, 계속 틀리면서 GPT한테 물어봐서 나온 결과가 위 코드.. GPT한테 물어본 것들은
이 두 질문으로 문자열을 배열로 받고, 문자열을 정수형으로 변환시키는 법을 알았다. 그렇게 겨우 푼 뒤 질문 게시판 들어가서 다른 사람들은 뭘 물어봤나 하고 봤는데..
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
long a = scanner.nextLong();
long b = scanner.nextLong();
long c = scanner.nextLong();
System.out.println(a+b+c);
}
}
더 쉽고 간단하고 편리하고 좋은(?) 답 발견.. 알아보니 자바는 공백으로도 구분해서 입력 받는다고 하네.. 생각해보니 지금까지 푼 문제에서도 공백으로 입력 받은 것 같기도 하고.. 난 무엇을 한건가..
그래도 새로 알 수 있었고 써본 것들
1. 문자열 배열 사용해서 입력 받아보기
2. split() 사용해서 공백을 기준으로 나누어 저장하기
3. 문자열을 정수형으로 바꾸는 방법
4. 자바는 숫자 입력을 공백으로도 구분해서 받는다^^
꼭 기억하자.
12) 문제 번호 10171 / 고양이
public class Main{
public static void main(String[] args){
System.out.println("\\ /\\");
System.out.println(" ) ( ')");
System.out.println("( / )");
System.out.println(" \\(__)| ");
}
}
처음엔 이게 무슨 문제인가 싶다가 역슬래쉬는 그냥 출력하면 안되고 역슬래쉬를 출력하려면 앞에 역슬래쉬를 한 번 더 붙여야 함을 알게 되었다.
13) 문제 번호 10172 / 개
public class Main{
public static void main(String[] args){
System.out.println("|\\_/|");
System.out.println("|q p| /}");
System.out.println("( 0 )\"\"\"\\");
System.out.println("|\"^\"` |");
System.out.println("||_/=\\\\__|");
}
}
앞의 고양이 문제에서 알 수 있던 역슬래쉬를 출력하려면 역슬래쉬를 앞에 한 번 더 붙여야 하는데, 역슬래쉬 뿐만 아니라 '"'(쌍따옴표) 역시도 앞에 역슬래쉬를 붙여 줘야 출력 가능하다.
'Java' 카테고리의 다른 글
[백준] 2주차 2 (1) | 2023.05.19 |
---|---|
[백준] 2주차 1 (1) | 2023.05.19 |
[백준] 1주차 4 (1) | 2023.05.14 |
[백준] 1주차 3 (0) | 2023.05.14 |
[백준] 1주차 (0) | 2023.05.10 |