백준 11719 그대로 출력하기
문제 : NULL이 입력(ctrl+z) 될 때 까지 입력받은 그대로 심지어 그냥 엔터나 공백까지도 그대로 출력하기
소스코드1
import java.util.*;
import java.io.*;
class Main {
/*
public StringBuilder solution(String str) {
StringBuilder answer = new StringBuilder("");
return answer;
}
*/
public static void main(String[] args) throws Exception {
//Main T = new Main();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = "";
while ((str = br.readLine()) != null) {
System.out.println(str);
}
}
}
소스코드2
import java.util.*;
import java.io.*;
class Main {
public static void main(String[] args) throws Exception {
//Main T = new Main();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String str = "";
while (true) {
str = br.readLine();
if (str == null) { break; }
bw.write(str);
bw.newLine();
bw.flush();
}
bw.close();
System.out.println("end");
}
}
백준 1259 팰린드롬수
문제 : 어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'radar', 'sees'는 팰린드롬이다.
0이 앞에 올 경우, 예를 들어 010은 팰린드롬수가 아니다.
입력 마지막 줄 에는 0이 주어지며 이 줄은 문제에 포함되지 않는다.
소스코드
import java.util.*;
class Main {
public String solution(String str) {
StringBuilder answer = new StringBuilder("");
for (char x : str.toCharArray()) {
answer.append(x);
}
if (answer.length() > 1 && answer.charAt(0) == '0') answer = answer.deleteCharAt(0);
String originString = answer.toString();
String reverseString = answer.reverse().toString();
if (originString.equals(reverseString)) return "yes";
else return "no";
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = "";
while (true) {
str = kb.nextLine();
if (str.equals("0")) break;
System.out.println(T.solution(str));
}
}
}
==은 주소값을 비교하고, equals 는 대상의 내용 자체를 비교한다.
nextInt( )사용 후 nextLine( ) 사용법
이렇게 nextInt() 사용 후 nextLine()을 사용할 경우 공백이 입력으로 처리되어 다음과 같은 문제가 발생한다.
해결방법 :
다음과 같이 nextLine() 처리를 해주면 된다.
백준 9093 단어 뒤집기
문제 :
소스코드 :
import java.util.*;
class Main {
public StringBuilder solution(String str) { // daramG and dotori is good
StringBuilder sb = new StringBuilder("");
StringBuilder answer = new StringBuilder("");
String[] s = str.split(" "); // daramG,and,dotori,is,good // s[0] = "daramG", ...
for (String x : s) {
for(int i=0; i<x.length(); i++) {
sb.append(x.charAt(i));
}
sb = sb.reverse();
answer.append(sb);
answer.append(" ");
sb.setLength(0);
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
int num = kb.nextInt();
kb.nextLine();
String str = "";
for (int i=0; i<num; i++) {
str = kb.nextLine(); // daramG and dotori is good
System.out.println(T.solution(str));
}
}
}
훨씬 가볍게 풀 수 있는 방법이 있는데 다음에 해보겠다.
'Java 코딩테스트 공부 > Java 백준 문제풀이' 카테고리의 다른 글
자바 백준 1644번 문제 - 소수의 연속합 (0) | 2022.08.11 |
---|---|
자바 백준 1806번 문제 - 부분합 (0) | 2022.08.02 |
Java 백준 1747번 문제 - 소수&팰린드롬 (0) | 2022.08.01 |
백준 1032번 명령 프롬프트 / 자바 문자열 파트 (0) | 2022.07.13 |
백준 10808번 알파벳 개수 / 자바 문자열 파트 (0) | 2022.07.12 |