```
백준 23027번 1번부터 문제의 상태가…? JAVA 구현해보기
```

이번 글을 통해 배워갈 내용
- 백준 23027번 풀이
https://www.acmicpc.net/problem/23027
23027번: 1번부터 문제의 상태가…?
큰일이다. 시험 문제를 본 쿠기는 1번부터 풀 수가 없다. 시험 시간 동안 할 일이 없었던 쿠기는 교수님께 편지를 쓰려고 한다. 작년 시험에서 교수님께 그동안 감사했다는 편지를 전하고 D+을 받
www.acmicpc.net
백준 23027번은
난이도 브론즈 등급의 문제로서
문자열 S를 입력받고
'A'가 있다면 S에 있는 'B', 'C', 'D', 'F'를 모두 'A'로 변경하고
'A'가 없고 'B'가 있다면 S에 있는 'C', 'D', 'F'를 모두 'B'로 변경하고
'A'와 'B'가 없고 'C'가 있다면 S에 있는 'D', 'F'를 모두 'C'로 변경하고
'A', 'B'와 'C'가 모두 없다면 S에 있는 모든 문자를 'A'로 변경하면 되는 문제입니다.
30분 정도 위에 링크를 방문하셔서 풀어보시고
안풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.
조건에 맞게 변환해주면 됩니다.
시간 관계상 replaceAll을 사용하였지만
바꾸는 게 많은 경우
for문이나 stream으로 돌리면 더욱더 효율적일 것 같습니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
public static void main(String[] args) throws IOException {
String message = convertMsg(br.readLine());
System.out.println(message);
}
private static String convertMsg(String s) {
if (s.contains("A")) {
//편지의 내용 S에 'A'가 있다면 S에 있는 'B', 'C', 'D', 'F'를 모두 'A'로 변경한다.
s = s.replaceAll("B", "A");
s = s.replaceAll("C", "A");
s = s.replaceAll("D", "A");
s = s.replaceAll("F", "A");
} else if (s.contains("B")) {
//'A'가 없고 'B'가 있다면 S에 있는 'C', 'D', 'F'를 모두 'B'로 변경한다.
s = s.replaceAll("C", "B");
s = s.replaceAll("D", "B");
s = s.replaceAll("F", "B");
} else if (s.contains("C")) {
//'A'와 'B'가 없고 'C'가 있다면 S에 있는 'D', 'F'를 모두 'C'로 변경한다.
s = s.replaceAll("D", "C");
s = s.replaceAll("F", "C");
} else {
//'A', 'B'와 'C'가 모두 없다면 S에 있는 모든 문자를 'A'로 변경한다.
s = "A".repeat(s.length());
}
return s;
}
}
읽어주셔서 감사합니다
무엇인가 얻어가셨기를 바라며
오늘도 즐거운 코딩하시길 바랍니다 ~ :)
728x90
'Java > Java 알고리즘' 카테고리의 다른 글
| 백준 22015번 金平糖 (Konpeito) JAVA 구현해보기 (0) | 2022.02.10 |
|---|---|
| 백준 23375번 Arm Coordination JAVA 구현해보기 (2) | 2022.02.10 |
| 백준 23303번 이 문제는 D2 입니다. JAVA 구현해보기 (0) | 2022.02.09 |
| 백준 14226번 이모티콘 JAVA 구현해보기 (0) | 2022.02.09 |
| 백준 23348번 스트릿 코딩 파이터 JAVA 구현해보기 (0) | 2022.02.08 |