인프런 커뮤니티 질문&답변
특정문자뒤집기
작성
·
284
0
코드를 다음과 같이 작성 했는데 예외 케이스가 있는지 궁금합니다.
import java.util.Scanner;
public class 특정문자뒤집기 { public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
char[] arr = str.toCharArray();
boolean[] bln = new boolean[str.length()];
for(int i=0; i<arr.length; i++) { if((Character.isAlphabetic(arr[i])) &&!bln[i]) {
char temp = arr[Math.abs(i-arr.length)-1];
bln[Math.abs(i-arr.length)-1] = true;
arr[Math.abs(i-arr.length)-1] = arr[i];
arr[i] = temp; bln[i] = true;
} }
for(char ans : arr) System.out.print(ans);
} }
퀴즈
대소문자를 구분하지 않고 문자열 내 특정 문자의 총 개수를 세려면, 어떤 방법이 가장 효율적일까요?
문자열을 반복하며 각 문자가 찾으려는 문자의 대문자 또는 소문자인지 모두 비교한다.
문자열 전체를 한 가지 케이스(예: 모두 대문자)로 통일한 후 해당 문자의 개수를 센다.
대문자와 소문자의 개수를 각각 세어 합산한다.
Set 자료구조를 사용하여 중복 없이 문자를 저장한 후 개수를 센다.





