반응형
크로아티아 알파벳이 몇 개 입력 되었는지 출력해주는 프로그램이다. ć, dž 이렇게 이상하게 생긴것들은 위에 표와 같이 변환해서 입력이 된다.
ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k) 일반 알파벳은 하나는 하나로 세고 변환된 것들은 여러문자가 붙어있을 경우 하나로 묶어서 한개로 세야 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import java.util.Scanner;
//baekjoon_2931_크로아니타 알파벳
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str[] = {"c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="};
String st = sc.nextLine();
for(int i=0; i<str.length; i++) {
if(st.contains(str[i]))
st = st.replace(str[i], "!");
}
System.out.println(st.length());
}
}
|
cs |
line 7 : 변환해야하는 문자열만 문자열배열을 생성하여 초기화 해준다. str[] 배열에 있는 문자열들은 하나의 개수로 센다.
line 9 : 문자열 입력.
line 11 : 이 for문은 변환해야하는 알파벳들을 변환하는 반복문이다.
str[]문자열 배열을 훑으면서 변환할 문자가 있는지 검사한다. 때문에 배열크기만큼 반복.
line 12 : st.contains(str[i]) 배열에 있는 원소가 사용자가 입력한 st문자열에 있는지 검사하는 함수다.
예를들어 "c="이 st문자열에 있으면 true가 리턴되어 if문 안으로 들어간다.
line 13 : replace(string, string)함수를 이용한다. st문자열에 str[i]은 하나의 개수로 카운트 해야하므로 "!" 로 변환해준다.
(특수문자로 변환하는 이유는 알파벳으로 변환했다간 다음 검사때 중복카운트가 되는 경우를 방지, 다른 특수문자도 가능)
line 15 : 재배치된 st문자열의 크기를 출력해주면 된다.
반응형
'프로그래밍 > 백준 알고리즘 코드' 카테고리의 다른 글
백준 1712번 java 자바 손익분기점 (수학 1) (0) | 2020.10.17 |
---|---|
백준 1316번 자바 JAVA 그룹 단어 체커 [문자열] (0) | 2020.10.14 |
백준 5622번 자바 Java 다이얼 (문자열) (0) | 2020.09.29 |
백준 2908번 java 자바 상수 (문자열) (0) | 2020.09.27 |
백준 1152번 java 자바 단어의 개수 [문자열] (0) | 2020.09.19 |
댓글