2754번: 학점계산
https://www.acmicpc.net/problem/2754
# 코드
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
// 빠른 입출력을 위한 BufferedReader 와 BufferedWriter
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// 입력 값
String input = br.readLine();
// 성적
double score = 0.0;
// A, B, C, D (F는 그대로 0.0)
switch (input.substring(0, 1)) {
case "A":
score += 4;
break;
case "B":
score += 3;
break;
case "C":
score += 2;
break;
case "D":
score += 1;
break;
}
// +, - 인 경우
if (input.length() > 1) {
switch (input.substring(1, 2)) {
case "+":
score += 0.3;
break;
case "-":
score -= 0.3;
break;
}
}
// 출력
bw.write(String.valueOf(score));
// Reader 버퍼 닫기
br.close();
// Writer 버퍼 비운 뒤 닫기
bw.flush();
bw.close();
}
}
27866번: 문자와 문자열
https://www.acmicpc.net/problem/27866
# 코드
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
// 빠른 입출력을 위한 BufferedReader 와 BufferedWriter
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// 입력 값
String input = br.readLine();
// i 번째 (int)
int i = Integer.parseInt(br.readLine());
// 출력
bw.write(input.substring(i - 1, i));
// Reader 버퍼 닫기
br.close();
// Writer 버퍼 비운 뒤 닫기
bw.flush();
bw.close();
}
}
11718번: 그대로 출력하기
https://www.acmicpc.net/problem/11718
# 코드
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
// 빠른 입출력을 위한 BufferedReader 와 BufferedWriter
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// 각 입력줄을 저장할 리스트 생성
List<String> list = new ArrayList<>();
// 다음 입력줄이 없을 때까지 반복
// 읽어온 줄은 변수 line 에 담아서 사용
String line;
while ((line = br.readLine()) != null) {
list.add(line);
}
// 리스트에 담긴 입력줄을 차례로 출력
for (String ele : list) {
bw.write(ele + "\n");
}
// Reader 버퍼 닫기
br.close();
// Writer 버퍼 비운 뒤 닫기
bw.flush();
bw.close();
}
}
- BufferedReader 를 사용하는데 입력 줄의 개수가 미정일 때는 위 코드와 같이 변수에 담은 후 != null 연산을 조건으로 걸면 된다.
- 이 때 변수의 선언은 while문보다 먼저 이루어져야 하는데, 아래처럼 조건문에 변수를 선언할 경우 조건문 내에서 변수 line 에 접근하지 못하기 때문이다.
while ((String line = br.readLine()) != null) // XXX
9086번: 문자열
https://www.acmicpc.net/problem/9086
# 코드
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
// 빠른 입출력을 위한 BufferedReader 와 BufferedWriter
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// 테스트 케이스의 개수 T
int t = Integer.parseInt(br.readLine());
// 테스트 케이스를 담을 T 크기의 배열
String arr[] = new String[t];
// 첫 글자 + 마지막 글자
for (int i = 0; i < t; i++) {
String line = br.readLine();
arr[i] = line.substring(0, 1) + line.substring(line.length() - 1, line.length());
}
// 출력
for (String ele : arr) {
bw.write(ele + "\n");
}
// Reader 버퍼 닫기
br.close();
// Writer 버퍼 비운 뒤 닫기
bw.flush();
bw.close();
}
}
'코딩테스트 > 자바 문제풀이' 카테고리의 다른 글
[자료구조] 백준 18258 큐(2) (0) | 2024.07.10 |
---|---|
[새싹: 함수] 백준 15964, 2475 (0) | 2024.07.09 |
[새싹: 문자열 (1)] 백준 11654, 2743, 2744 (0) | 2024.07.07 |
[새싹: 배열] 백준 10871, 10807, 5597, 2738 (0) | 2024.07.06 |
[새싹: 빠른 입출력] 백준 15552 (0) | 2024.07.05 |