백준 Serious Problem

KIMYEONGJUN·2025년 1월 22일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

첫 줄에 문자열 s의 길이가 주어진다.
둘째 줄에 문자열 s가 주어진다.
s의 길이는 1 이상 105 이하이며, s는 2와 e로만 이루어져 있다.

2의 등장횟수가 더 많다면 2를 출력하고, e의 등장횟수가 더 많다면 e를 출력한다.
등장횟수가 같다면 "yee"를 출력한다. (큰 따옴표 제외)

내가 이 문제를 보고 생각해본 부분

BufferedReader를 사용하여 표준 입력을 읽는다.
첫 번째 줄은 문자열의 길이이므로 읽기만 하고 사용하지 않는다.
문자열 읽기 및 초기화:
두 번째 줄에서 문자열 s를 읽어온다.
count2와 countE는 각각 '2'와 'e'의 개수를 저장하기 위한 변수이다.
문자열 순회 및 카운트:
s.toCharArray()를 사용하여 문자열을 문자 배열로 변환한 후, 각 문자를 순회한다.
각 문자가 '2'일 경우 count2를 증가시키고, 'e'일 경우 countE를 증가시킨다.
결과 비교 및 출력:
count2와 countE를 비교하여 더 많이 등장한 문자를 출력한다.
두 개수가 같으면 "yee"를 출력한다.

코드로 구현

package baekjoon.baekjoon_26;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

// 백준 17094번 문제
public class Main910 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        br.readLine(); // 첫 줄은 문자열의 길이이므로 읽어오지만 사용하지 않음

        String s = br.readLine();
        int count2 = 0;
        int countE = 0;

        for(char c : s.toCharArray()) { // 문자열 s를 순회하며 '2'와 'e'의 개수를 센다
            if(c == '2') {
                count2++;
            } else if (c == 'e') {
                countE++;
            }
        }

        // 결과를 비교하여 출력
        if(count2 > countE) {
            System.out.println("2");
        } else if(countE > count2) {
            System.out.println("e");
        } else {
            System.out.println("yee");
        }

        br.close();
    }
}

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글