728x90
문제를 설명 드리자면 첫 번째 줄에 문자열이 주어집니다.
그 문자열은 =,-,소문자영어 로 이루어져있습니다.
그 문자열 중에서 크로아티아 문자가 있는 것 입니다.
"c=","c-","dz=","d-","lj","nj","s=","z=" 이 문자열들이 크로아티아의 한문자씩이라고 보시면 됩니다.
그래서 문자열 중에서 이런 문자가 있으면 1문자로 인식을하고 나머지 문자를 포함해서 총 몇글자인지
출력하는 프로그램 입니다.
예제 2번을 보면 ddz=z= 입니다.
dz=z=가 크로아티아 문자로 dz=가 한글자 z= 가 한글자 해서 총 두글자입니다.
+ 맨앞에 d 한문자를 더해서 총3문자입니다.
import java.util.Scanner;
class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
String str[] = {"c=","c-","dz=","d-","lj","nj","s=","z="};
for(int i=0; i<str.length; i++){
if(s.contains(str[i])){
s = s.replace(str[i],"0");
}
}
System.out.println(s.length());
}
}
크로아티아 문자들을 배열로 만듭니다.
배열의 길이만큼 반복하며, contains()를 사용하여 s 문자열 중에서 str 배열에 있는 문자들이
있는지 검사합니다.
반환값이 true, false 입니다.
문자가 존재한다면 true이므로 if문 pass입니다.
replace는 문자열을 변경하는 메소드입니다.
찾은 문자를 "0"으로 바꾸겠다는 말입니다.
배열에 있는 문자열들이 한문자로 인식이되니 "0"으로 바꾸어 한문자로 만들어줍니다.
그 후 s 의 길이만큼 출력해주면 됩니다.
728x90
'알고리즘 with JAVA' 카테고리의 다른 글
백준 11718번 문제 그대로 출력하기 - with 자바 (0) | 2021.05.13 |
---|---|
백준 1316번 그룹 단어 체커 - 자바 (0) | 2021.04.13 |
백준 5622번 다이얼 - 자바 (0) | 2021.04.12 |
백준 2908번 상수 - 자바 (0) | 2021.04.12 |
백준 1152번 단어의 개수 - 자바 (0) | 2021.04.11 |