문제 1065
import java.io.*;
public class Main {
//세 정수 a, b, c가 입력되었을 때, 짝수만 출력해보자.
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] s = br.readLine().split(" ");
int a = Integer.parseInt(s[0]);
int b = Integer.parseInt(s[1]);
int c = Integer.parseInt(s[2]);
int[] A = {a,b,c};
for (int i=0;i<A.length;i++) {
if (A[i] % 2 == 0) System.out.println(A[i]);
}
}
}
문제 1066
import java.io.*;
public class Main {
//세 정수 a, b, c가 입력되었을 때, 짝(even)/홀(odd)을 출력해보자.
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] s = br.readLine().split(" ");
int a = Integer.parseInt(s[0]);
int b = Integer.parseInt(s[1]);
int c = Integer.parseInt(s[2]);
int[] A = {a, b, c};
for (int i : A){
if (i%2==0) System.out.println("even");
else System.out.println("odd");
}
}
}
문제 1067
import java.io.*;
public class Main {
//정수 1개가 입력되었을 때, 음(minus)/양(plus)과 짝(even)/홀(odd)을 출력해보자.
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(br.readLine());
if (a<0) {
System.out.println("minus");
if (a%2==0) System.out.println("even");
else System.out.println("odd");
}
else {
System.out.println("plus");
if (a%2==0) System.out.println("even");
else System.out.println("odd");
}
}
}
문제 1068
import java.io.*;
public class Main {
//점수(정수, 0 ~ 100)를 입력받아 평가를 출력해보자.
//평가 기준
//점수 범위 : 평가
// 90 ~ 100 : A
// 70 ~ 89 : B
// 40 ~ 69 : C
// 0 ~ 39 : D
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(br.readLine());
if (a>=90) System.out.println("A");
else if (a>=70) System.out.println("B");
else if (a>=40) System.out.println("C");
else System.out.println("D");
}
}
문제 1069
import java.io.*;
public class Main {
//평가를 문자(A, B, C, D, ...)로 입력받아 내용을 다르게 출력해보자.
//평가 : 내용
//A : best!!!
//B : good!!
//C : run!
//D : slowly~
//나머지 문자들 : what?
//switch( ) ... case... break; 제어문을 사용해보기
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String a = br.readLine();
switch(a){
case "A":
System.out.println("best!!!");
break;
case "B":
System.out.println("good!!");
break;
case "C":
System.out.println("run!");
break;
case "D":
System.out.println("slowly~");
break;
default:
System.out.println("what?");
break;
}
}
}
문제 1070
import java.io.*;
public class Main {
//월이 입력될 때 계절 이름이 출력되도록 해보자.
//월 : 계절 이름
//12, 1, 2 : winter
// 3, 4, 5 : spring
// 6, 7, 8 : summer
// 9, 10, 11 : fall
//switch( ).. case ... break; 제어문 사용하기
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(br.readLine());
switch(a){
// case(12|1|2): // <-- case에서 여러 값을 or로 묶는 것은 불가능
// case는 각각의 값에 대해 별도로 작성해야 하며, 각 case는 특정한 값만 매칭해야 함.
case 12:
case 1:
case 2:
System.out.println("winter");
break;
case 3:
case 4:
case 5:
System.out.println("spring");
break;
case 6:
case 7:
case 8:
System.out.println("summer");
break;
case 9:
case 10:
case 11:
System.out.println("fall");
break;
default:
break;
}
}
}
문제 1071
import java.io.*;
import java.util.*;
public class Main {
//개수는 알 수 없는 정수가 계속 입력되는데 0이 아니면 입력된 정수를 출력하고,
//0이 입력되면 출력을 중단해보자.
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] S = br.readLine().split(" ");
// int[] I; //<-- 배열은 사용하기 전에 크기와 메모리를 할당해야하므로 불가능.
//따라서 List 사용
List<Integer> I = new ArrayList<>();
//변수는 List 인터페이스를 사용하여 선언되었고, 구현체로 ArrayList를 사용함.
for (String s : S ){
I.add(Integer.parseInt(s));
}
for (int i : I){
if (i==0) break;
else System.out.println(i);
}
}
}
문제 1072
import java.io.*;
import java.util.*;
public class Main {
//n개의 정수가 순서대로 입력된다.
//-2147483648 ~ +2147483647, 단 n의 최대 개수는 알 수 없다.
//
//n개의 입력된 정수를 순서대로 출력해보자.
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
for (int i = 0; i < num; i++) {
System.out.println(sc.nextInt());
}
}
}
이 문제에서 코드가 잘 동작하는데도 실행 중 에러만 6번 발생했다🥲
문자열을 숫자로 바꿀때 발생하는 오류인 NumberFomatException 오류가 나서 이를 해결하기 위해 StringTokenizer 사용해서 잘라보기도 하고, split("\\s+")를 통해 연속된 공백 또한 하나의 구분자로 취급하게 하고, trim 메서드 사용해서 공백 제거 후 정수로 변환해보기도 했는데 다 똑같은 오류가 발생했다..
다른 정답 코드들을 보니 BufferedReader가 아닌 Scanner를 사용했다..ㅎ Scanner는 쓰고 싶지 않아서 BufferedReader를 사용한 코드 위주로 찾아 보니 첫 번째로 입력받는 배열의 크기 n을 사용하지 않는다.. 입력받아놓고 정작 사용하지 않는 게 싫어서 최대한 활용해보려고 배열을 생성하고 두 번째로 입력받는 내용을 잘라서 넣었으면 오류가 나서 어쩔 수 없이 BufferedReader를 쓰면서 첫 번째 입력은 사용하지 않는 방법으로 해결해보려고 했지만!! 이 또한 같은 오류 발생...아니...정답 코드 그대로 썼는데 왜 오류가...?
그래서 혹시나 문제에서 while( ), for( ), do~while( )을 쓰지 말라고 해서 for문을 안 쓰고 출력했는데도 오류 발생;; 심지어 다른 정답 코드들 다 for문 쓰고 있음..
그래서 그냥 Scanner를 쓰기로 했다...ㅎ
아무튼 이 문제를 해결하다 실행 중 에러를 잔뜩 생성했다~
잘 작동하지만 오류가 난 코드 (아까워서 첨부)
- BufferedReader를 사용하고, n도 활용하는 코드
import java.io.*;
import java.util.*;
public class Main {
//n개의 정수가 순서대로 입력된다.
//-2147483648 ~ +2147483647, 단 n의 최대 개수는 알 수 없다.
//
//n개의 입력된 정수를 순서대로 출력해보자.
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] A = new int[n]; //크기가 n인 배열 생성
// 아래 코드에서 오류 발생
/*
String[] s = br.readLine().split(" ");
for (int i=0;i<A.length;i++){
A[i] = Integer.parseInt(s[i]); //<--NumberFormatException 오류 발생
// NumberFormatException : 자열을 정수로 변환하려고 할 때, 해당 문자열이 정수로
// 변환될 수 없는 형식일 때 발생
// 원인 : split 메서드 이후 문자열의 양쪽에 공백이 남아 있어서
//Integer.parseInt가 이 공백을 포함한 문자열을 변환하려고 했기 때문
// 해결 :
// 1. StringTokenizer 사용
// 2. split("\\s+")를 통해 연속된 공백 또한 하나의 구분자로 취급하게 하고,
// trim 메서드 사용해서 공백 제거 후 정수로 변환하기
}
*/
//
// // 해결 방법 1
//
// String[] s = br.readLine().split("\\s+");
//
// for (int i=0;i<A.length;i++){
// A[i] = Integer.parseInt(s[i].trim());
// }
//
// for (int a: A) {
// System.out.println(a);
// }
// 해결 방법 : 2
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i=0;i<A.length;i++){
A[i] = Integer.parseInt(st.nextToken());
}
for (int a: A) {
System.out.println(a);
}
}
}
- BufferedReader를 사용하고 n은 사용하지 않는 코드
import java.io.*;
import java.util.*;
public class Main {
//n개의 정수가 순서대로 입력된다.
//-2147483648 ~ +2147483647, 단 n의 최대 개수는 알 수 없다.
//
//n개의 입력된 정수를 순서대로 출력해보자.
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
String[] a = br.readLine().split(" ");
for (String s : a){
System.out.println(s);
}
}
}
문제 1073
import java.io.*;
import java.util.Objects;
public class Main {
//0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자.
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] S = br.readLine().split(" ");
for (String s: S){
if (s.equals("0")) break;
else System.out.println(s);
}
}
}
문제 1074
import java.io.*;
public class Main {
//정수(1 ~ 100) 1개가 입력되었을 때 카운트다운을 출력해보자.
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(br.readLine());
while(a>0){
System.out.println(a);
a--;
}
}
}
문제 1075
import java.io.*;
public class Main {
//정수(1 ~ 100) 1개가 입력되었을 때 카운트다운을 출력해보자. 0까지.
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(br.readLine());
while (a>0){
System.out.println(--a);
}
}
}
문제 1076
import java.io.*;
public class Main {
// 영문자(a ~ z) 1개가 입력되었을 때 그 문자까지의 알파벳을 순서대로 출력해보자.
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
char c = br.readLine().charAt(0);
char a = 'a';
do {
System.out.print(a+" ");
a++;
} while(a<=c);
}
}
문제 1077
import java.io.*;
public class Main {
//정수(0 ~ 100) 1개를 입력받아 0부터 그 수까지 순서대로 출력해보자.
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(br.readLine());
for (int i = 0;i<=a; i++){
System.out.println(i);
}
}
}
초반에 for문에서 파이썬 문법이랑 헷갈려서 좀 당황했는데 이젠 자바가 익숙해졌다.
휴우~
1072번을 BufferedReader를 사용해서 못풀어서 아쉽다! 에러...가 너무 나서 아쉬움이 가득하다😔
'코딩 테스트 일지 📒' 카테고리의 다른 글
[코드업/JAVA] 기초 100제 8. 1차원배열&2차원배열 1093-1099 🐘 (2) | 2024.08.26 |
---|---|
[코드업/JAVA] 기초 100제 7. 종합 1078-1092 🐘 (0) | 2024.08.24 |
[코드업/JAVA] 기초 100제 5. 논리연산&비트단위논리연산 1053-1064 🐘 (0) | 2024.08.22 |
[코드업/JAVA] 기초 100제 4. 산술연산&비트시프트연산&비교연산 1038-1052 🐘 (0) | 2024.08.21 |
[코드업/JAVA] 기초 100제 3. 데이터형&출력변환 1028~1037 🐘 (0) | 2024.08.16 |