공부하기/백준

[Java] 백준 풀기 23027 - 1번부터 문제의 상태가…?

XEV 2024. 4. 8. 23:36

자바 백준 23027번

브론즈 2

https://www.acmicpc.net/problem/23027

 

23027번: 1번부터 문제의 상태가…?

큰일이다. 시험 문제를 본 쿠기는 1번부터 풀 수가 없다. 시험 시간 동안 할 일이 없었던 쿠기는 교수님께 편지를 쓰려고 한다. 작년 시험에서 교수님께 그동안 감사했다는 편지를 전하고 D+을 받

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 구현, 문자열

 

 

 

 

 

코드 폴이

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        // 사용자로부터 문자열 입력
        String S = sc.next();
        
        // 수정된 문자열을 저장할 변수 선언 및 초기화
        String modifiedLetter = modifyLetter(S);
        
        // 수정된 문자열 출력
        System.out.println(modifiedLetter);
    }
    
    // 주어진 문자열을 수정하는 함수
    public static String modifyLetter(String S) {
        // 수정된 문자열을 저장하기 위한 StringBuilder 객체 생성
        StringBuilder modifiedLetter = new StringBuilder();
        
        // 'A'가 포함되어 있을 경우
        if (S.contains("A")) {
            // 문자열의 각 문자에 대해 반복
            for (int i = 0; i < S.length(); i++) {
                char ch = S.charAt(i);
                if (ch == 'B' || ch == 'C' || ch == 'D' || ch == 'F') {
                    // 조건에 맞는 문자인 경우 'A'로 변경하여 StringBuilder에 추가
                    modifiedLetter.append('A');
                } else {
                    // 조건에 맞지 않는 문자는 그대로 StringBuilder에 추가
                    modifiedLetter.append(ch);
                }
            }
        } 
        // 'B'가 포함되어 있을 경우
        else if (S.contains("B")) {
            // 문자열의 각 문자에 대해 반복
            for (int i = 0; i < S.length(); i++) {
                char ch = S.charAt(i);
                if (ch == 'C' || ch == 'D' || ch == 'F') {
                    // 조건에 맞는 문자인 경우 'B'로 변경하여 StringBuilder에 추가
                    modifiedLetter.append('B');
                } else {
                    // 조건에 맞지 않는 문자는 그대로 StringBuilder에 추가
                    modifiedLetter.append(ch);
                }
            }
        } 
        // 'C'가 포함되어 있을 경우
        else if (S.contains("C")) {
            // 문자열의 각 문자에 대해 반복
            for (int i = 0; i < S.length(); i++) {
                char ch = S.charAt(i);
                if (ch == 'D' || ch == 'F') {
                    // 조건에 맞는 문자인 경우 'C'로 변경하여 StringBuilder에 추가
                    modifiedLetter.append('C');
                } else {
                    // 조건에 맞지 않는 문자는 그대로 StringBuilder에 추가
                    modifiedLetter.append(ch);
                }
            }
        } 
        // 모든 조건을 만족하지 않을 경우
        else {
            // 문자열의 각 문자를 'A'로 변경하여 StringBuilder에 추가
            for (int i = 0; i < S.length(); i++) {
                modifiedLetter.append('A');
            }
        }
        
        // 수정된 문자열을 문자열로 변환하여 반환
        return modifiedLetter.toString();
    }
}