백준 TEST01_입/출력 받아보기

# baekjoon_java

# 백준 TEST01_입/출력 받아보기

Hello World

1
2
3
4
5
public class TEST01_01 {
public static void main(String args[]){
System.out.println("Hellow World");
}
}

A+B

1
2
3
4
5
6
7
8
9
10
import java.util.*;
public class TEST01_02{
public static void main(String args[]){
Scanner scan = new Scanner(System.in);
int a, b;
a = scan.nextInt();
b = scan.nextInt();
System.out.println(a + b);
}
}

A-B

1
2
3
4
5
6
7
8
9
10
11
import java.util.*;

public class TEST01_03 {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int b = scan.nextInt();

System.out.println(a-b);
}
}

등록

텍스트 추가

1
2
3
4
5
6
public class TEST01_04 {
public static void main(String[] args){
System.out.println("맞은갯수");
System.out.println("아이디명");
}
}

텍스트 추가

1
2
3
4
5
6
7
8
9
10
11
public class TEST01_05 {
public static void main(String[] args){
System.out.println("|\\_/|");
//역슬래쉬를 print로 표시하고 싶으면 \\로 사용.
System.out.println("|q p| /}");
System.out.println("( 0 )\"\"\"\\");
//따옴표를 print로 표시하고 싶으면 \"로 사용.
System.out.println("|\"^\"` |");
System.out.println("||_/=\\\\__|");
}
}

We love kriii

1
2
3
4
5
public class TEST01_06 {
public static void main(String[] args){
System.out.printf("강한친구 대한육군\n강한친구 대한육군\n");
}
}

그대로 출력하기 (연습)

* 입력이 주어진다.

* 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다.

* 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다.

* 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.

charAt(i) => str문자열에 담은 문자열에서 첫번째문자를 chrInput에 담는다.

substring(i) => 하나의 인자값 해당 인덱스부터 모든 글자 리턴. 예를들어 i=3 일경우 3부터 모든값.

substring(i,j) => i부터 j-1까지.

문제점 -> 0~100줄까지 전부 입력을 해야하는데 빈줄이 주어지지않는다. 라는 점에서 문제가 있다고 생각함.

만족 조건은 입력 최대 100줄과 각 줄이 100줄을 넘을 경우 잘라내는 기능 까지만 구현이 완료됬음.

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import java.util.*;

public class TEST01_07 {
public static boolean checkInputOnlyNumberAndAlphabet(String str) {

char chrInput = str.charAt(0);

for (int i = 0; i < str.length(); i++) {

chrInput = str.charAt(i);
// 입력받은 텍스트에서 문자 하나하나 가져와서 체크
// charAt(i) = str문자열에 담은 문자열에서 첫번째문자를 chrInput에 담는다.

if (chrInput >= 0x61 && chrInput <= 0x7A) {
// 영문(소문자) OK!
}
else if (chrInput >=0x41 && chrInput <= 0x5A) {
// 영문(대문자) OK!
}
else if (chrInput >= 0x30 && chrInput <= 0x39) {
// 숫자 OK!
}
else { return false; // 영문자도 아니고 숫자도 아님!
}
}
return true;
}


public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
for (int n = 0; n < 100; n++) {
String str = scan.nextLine();

if (str.length() > 100) {
str = str.substring(0, 100);
}

// substring(i) => 하나의 인자값 해당 인덱스부터 모든 글자 리턴. 예를들어 i=3 일경우 3부터 모든값.
// substring(i,j) => i부터 j-1까지.
if (checkInputOnlyNumberAndAlphabet(str)) {
System.out.println(str);
}//줄에 영문,숫자를 제외한 다른글자가 포함되어있을 경우 출력을 안함.

} // for문 끝
}
}

그대로 출력하기 (답)

* 입력이 주어진다.

* 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다.

* 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다.

* 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.

고친점 : 너무 어렵게 생각하고 있었음. 굳이 함수를 따로 생성하지 않고

hasNextLine()을 이용해 엔터를 치면서 게속해서 글을 작성하도록 변경 그 외 함수를 추가적으로 이용하였음.

ArryList에 제네릭을 이용하여 String만 받기로 함.

-함수-

각 줄은 100글자를 넘지 않으며: word.length() > 100

빈 줄은 주어지지 않는다: word.isEmpty()

각 줄은 공백으로 시작하지 않고: word.startsWith(“ “)

공백으로 끝나지 않는다: word.endsWith(“ “)

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
31
32
33
34
35
import java.util.*;

public class TEST01_07_ANS {

public static void main(String[] args) {
Scanner scan= new Scanner(System.in);
ArrayList<String> array = new ArrayList<>();

while (scan.hasNextLine()) {
//입력이 있다면 게속적으로 true를 반환 ^z입력시 false를 반환
//즉 ^z전까지는 게속적으로 true이기 때문에 무한반복.
String word = scan.nextLine();
if (word.startsWith(" ") || word.endsWith(" ") || word.length()>100 || word.isEmpty()) {
break;
}
array.add(word);
}
scan.close();// while이 끝나면 scan을 닫는다.

for (int i = 0; i < array.size(); i++) {
System.out.println(array.get(i));
}
}
}

/*
각 줄은 100글자를 넘지 않으며: word.length() > 100
-> 100글자 이상일 경우 break
빈 줄은 주어지지 않는다: word.isEmpty()
-> 빈줄일경우 break
각 줄은 공백으로 시작하지 않고: word.startsWith(" ")
-> 첫글자가 공백 일경우 break
공백으로 끝나지 않는다: word.endsWith(" ")
-> 마지막 글자가 공백 일 경우 break
*/

그대로 출력하기2

* 입력이 주어진다.

* 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다.

* 각 줄은 100글자를 넘지 않으며, 빈 줄이 있을 수도 있다.

* 각 줄은 공백으로 시작할수도 있고, 공백으로 끝날수도 있다.

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
31
32
33
34
import java.util.ArrayList;
import java.util.Scanner;

public class TEST01_08 {

public static void main(String[] args) {
Scanner scan= new Scanner(System.in);
ArrayList<String> array = new ArrayList<>();

while (scan.hasNextLine()) {
//입력이 있다면 게속적으로 true를 반환 ^z입력시 false를 반환
//즉 ^z전까지는 게속적으로 true이기 때문에 무한반복.
String word = scan.nextLine();
if (word.length()>100 ) {
break;
}
if(word.equals("BYE")){ //BYE를 입력해서 WHILE 탈출
break;
}
array.add(word); //현재 줄의 입력내용을 Array배열에 추가.
}
scan.close();// while이 끝나면 scan을 닫는다.

for (int i = 0; i < array.size(); i++) {
System.out.println(array.get(i));
// 각 Array배열의 내용을 출력.
}
}
}

/*
각 줄은 100글자를 넘지 않으며: word.length() > 100
-> 100글자 이상일 경우 break
*/



Share