백준알고리즘
백준알고리즘:p2941 크로아티아 알파벳
socialcomputer
2021. 3. 9. 16:21
반응형
분류: 문자열
▶문제
▶코드
//백준알고리즘 제출시 클래스 이름은 Main으로 바꿔야 됨
package character_string;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class p2941 {
public static void main(String[] args) {
try(BufferedReader br = new BufferedReader(new InputStreamReader(System.in));){
String s = br.readLine();
int count =0;
for(int i=0; i<s.length(); i++) {
char c = s.charAt(i);
if(c=='c') {
if(s.charAt(i+1)=='=') {count+=1; i++;}
else if(s.charAt(i+1)=='-') {count+=1; i++;}
else count+=1;
}
else if(c=='d') {
if(s.charAt(i+1)=='z') {if(s.charAt(i+2)=='=') count+=1; i+=2;}
else if(s.charAt(i+1)=='-') {count+=1; i++;}
else count+=1;
}
else if(c=='l') {
if(s.charAt(i+1)=='j') {count+=1; i++;}
else count+=1;
}
else if(c=='n') {
if(s.charAt(i+1)=='j') {count+=1; i++;}
else count+=1;
}
else if(c=='s') {
if(s.charAt(i+1)=='=') {count+=1; i++;}
else count+=1;
}
else if(c=='z') {
if(s.charAt(i+1)=='=') {count+=1; i++;}
else count+=1;
}
else count+=1;
}
System.out.print(count);
}catch(Exception e) {e.printStackTrace();}
}
}
▶런타임 에러 뜸: 모든 경우의 수 일일이 다 나눠서 했더니..
//다시
package character_string;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class p2941 {
public static void main(String[] args) {
try(BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));){
String s = br.readLine();
String[] arr = {"c=", "c-","dz=","d-","lj","nj","s=","z="};
for(int i=0; i<arr.length; i++) {
s=s.replace(arr[i], "*");
}
bw.write(String.valueOf(s.length())); //bw.write쓰기는 문자 출력이니까 바꿔서.. 아니면 +"\n"하거나
bw.flush();
bw.close();
br.close();
}catch(Exception e) {e.printStackTrace();}
}
}
▶인터넷으로 찾아보다가 한 블로그를 보고 따라해 봤다... 출처: blog.naver.com/qkrdydrjs7/221959726150 출처 이렇게 해도 되는건지 모르겠다..
먼저 문자열 배열에 크로아티아 알파벳들을 넣어놓고.
replace를 사용해 해당 문자가 있으면 *로 바꿔준 후
문자열 길이를 출력해준다.
dz=와 z=이 오류를 일으킬수도 있는데,
여기선
arr배열에서 dz=을 먼저 검사하기 떄문에 오류가 나타나지 않는다.
채점결과
링크 www.acmicpc.net/problem/2941
2941번: 크로아티아 알파벳
예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z=
www.acmicpc.net
반응형