한 걸음 두 걸음
백준 2941 크로아티아알파벳 ] 문자열처리 본문
반응형
너무 하드코딩인데,,, 다른 방법 찾아봐야겠다 ㅠ
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int strCase = str.length();
str = str+"aaaa";
int result = 0;
for(int i = 0 ; i < strCase; i++ )
switch(str.charAt(i)){
case 'c':
if(str.charAt(i+1)=='='||str.charAt(i+1)=='-') {result++; i++; continue;}
else {result++; continue;}
case 'd':
if(str.charAt(i+1)=='z' && str.charAt(i+2) =='=') {result++; i+=2; continue;}
else if(str.charAt(i+1)=='-') {result++; i++; continue;}
else {result++; continue;}
case 'l':
if(str.charAt(i+1)=='j') {result++; i++; continue;}
else {result++; continue;}
case 'n':
if(str.charAt(i+1)=='j') {result++; i++; continue;}
else {result++; continue;}
case 's':
if(str.charAt(i+1)=='=') {result++; i++; continue;}
else {result++; continue;}
case 'z':
if(str.charAt(i+1)=='=') {result++; i++; continue;}
else {result++; continue;}
default :
result++; continue;
}
System.out.println(result);
}
}
전체 문자열에서 위의 크로아티아알파벳에 해당하는 경우를 replace해주는 방식.
dz=를 "d"로,
-, =를 ""로.
lj를 l로,
nj를 n으로 바꿔버리면
위의 표에서 해당하는 크로아티아 알파벳 외의 알파벳도 1개씩 세주니까
replace이후 전체 문자열의 길이를 반환해주면 정답이 된다.switch말고 if-else if로 짜면 보다 더 짧아지긴함!
반응형
'CSE > baekjoon & swexpert' 카테고리의 다른 글
백준10699 ] 현재시간 Date / SimpleDateFormat 로 날짜 표시하기 (0) | 2019.03.07 |
---|---|
백준 1237번 정ㅋ벅ㅋ.... (0) | 2019.03.07 |
백준 15740 & 10757 ] 큰 수 덧셈하기 (0) | 2019.03.07 |
백준 1018 체스판 다시 칠하기 ] 브루트포스 / 배열 JAVA (0) | 2019.02.23 |
baekjoon 6504번 계산 구현문제 ] 문자열, 진법 (0) | 2019.02.21 |