내가 생각했을때 문제에서 원하는부분
첫 줄에 문자열 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();
}
}
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.