import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
public class Main
{
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String name = br.readLine();
int count = 0;
int count1 = 0;
for(int i = 0; i < name.length(); i++)
{
if(name.charAt(i) == 'c')
{
if(name.charAt(i + 1) == '=' || name.charAt(i + 1) == '-')
{
count++;
count1 = count1 + 2;
}
}
else if(name.charAt(i) == 'd')
{
if(name.charAt(i + 1) == 'z')
{
if(name.charAt(i + 2) == '=')
{
count = count + 2;
count1 = count1 + 3;
}
}
else if(name.charAt(i + 1) == '-')
{
count++;
count1 = count1 + 2;
}
}
else if(name.charAt(i) == 'l')
{
if(name.charAt(i + 1) == 'j')
{
count++;
count1 = count1 + 2;
}
}
else if(name.charAt(i) == 'n')
{
if(name.charAt(i + 1) == 'j')
{
count++;
count1 = count1 + 2;
}
}
else if(name.charAt(i) == 's')
{
if(name.charAt(i + 1) == '=')
{
count++;
count1 = count1 + 2;
}
}
else if(name.charAt(i) == 'z')
{
if(name.charAt(i + 1) == '=')
{
count++;
count1 = count1 + 2;
}
}
}
count = name.length() + count - count1;
System.out.print(count);
}
}
입력받은 문자열의 길이에서 count 2글자이상의 크로아티아 알파벳을 1로 세주고, count1은 만약 2글자의 크로아티아 알파벳이면 2를 더해주었고 그걸로 연산을 해서 결과를 출력하려고 했고 예제까지는 통과했으나 런타임에러
name.length() 범위에서 오류가 나는 것 같아서 그 부분을 고쳐주고 조금 깔끔하게 정리했다. 그래도 오류가 나서 계속 보다가
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
public class Main
{
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String name = br.readLine();
int count = 0;
int count1 = 0;
for(int i = 0; i < name.length(); i++)
{
if(i < name.length() - 1)
{
if(name.charAt(i) == 'c')
{
if(name.charAt(i + 1) == '=' || name.charAt(i + 1) == '-')
{
count++;
count1 = count1 + 2;
}
}
}
else if(i < name.length() - 2)
{
if(name.charAt(i) == 'd')
{
if(name.charAt(i + 1) == 'z')
{
if(name.charAt(i + 2) == '=')
{
count = count + 2;
count1 = count1 + 3;
}
}
else if(name.charAt(i + 1) == '-')
{
count++;
count1 = count1 + 2;
}
}
}
else if(i < name.length() - 1)
{
if(name.charAt(i) == 'l')
{
if(name.charAt(i + 1) == 'j')
{
count++;
count1 = count1 + 2;
}
}
}
else if(i < name.length() - 1)
{
if(name.charAt(i) == 'n')
{
if(name.charAt(i + 1) == 'j')
{
count++;
count1 = count1 + 2;
}
}
}
else if(i < name.length() - 1)
{
if(name.charAt(i) == 's')
{
if(name.charAt(i + 1) == '=')
{
count++;
count1 = count1 + 2;
}
}
}
else if(i < name.length() - 1)
{
if(name.charAt(i) == 'z')
{
if(name.charAt(i + 1) == '=')
{
count++;
count1 = count1 + 2;
}
}
}
}
count = name.length() + count - count1;
System.out.print(count);
}
}
이 상태까지 왔는데 i < name.length() - 2 일 때만 d-를 체크하므로 오답이 난다는 걸 알고 바꿔줘서 통과했다.
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
public class Main
{
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String name = br.readLine();
int count = 0;
int count1 = 0;
for(int i = 0; i < name.length(); i++)
{
if(i < name.length() - 1)
{
if(name.charAt(i) == 'c')
{
if(name.charAt(i + 1) == '=' || name.charAt(i + 1) == '-')
{
count++;
count1 = count1 + 2;
}
}
else if(name.charAt(i) == 'l')
{
if(name.charAt(i + 1) == 'j')
{
count++;
count1 = count1 + 2;
}
}
else if(name.charAt(i) == 'n')
{
if(name.charAt(i + 1) == 'j')
{
count++;
count1 = count1 + 2;
}
}
else if(name.charAt(i) == 's')
{
if(name.charAt(i + 1) == '=')
{
count++;
count1 = count1 + 2;
}
}
else if(name.charAt(i) == 'z')
{
if(name.charAt(i + 1) == '=')
{
count++;
count1 = count1 + 2;
}
}
else if(name.charAt(i) == 'd')
{
if(name.charAt(i + 1) == '-')
{
count++;
count1 = count1 + 2;
}
}
}
if(i < name.length() - 2)
{
if(name.charAt(i) == 'd')
{
if(name.charAt(i + 1) == 'z')
{
if(name.charAt(i + 2) == '=')
{
count = count + 2;
count1 = count1 + 3;
}
}
}
}
}
count = name.length() + count - count1;
System.out.print(count);
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
int len = str.length();
int count = 0;
for (int i = 0; i < len; i++) {
char ch = str.charAt(i);
if(ch == 'c' && i < len - 1) { // 만약 ch 가 c 라면?
//만약 ch 다음 문자가 '=' 또는 '-' 이라면?
if(str.charAt(i + 1) == '=' || str.charAt(i + 1) == '-') {
// i+1 까지가 하나의 문자이므로 다음 문자를 건너 뛰기 위해 1 증가
i++;
}
}
else if(ch == 'd' && i < len - 1) {
if(str.charAt(i + 1) == '-') { // d- 일 경우
i++;
}
else if(str.charAt(i + 1) == 'z' && i < len - 2) {
if(str.charAt(i + 2) == '=') { // dz= 일 경우
i += 2;
}
}
}
else if((ch == 'l' || ch == 'n') && i < len - 1) {
if(str.charAt(i + 1) == 'j') { // lj 또는 nj 일 경우
i++;
}
}
else if((ch == 's' || ch == 'z') && i < len - 1) {
if(str.charAt(i + 1) == '=') { // s= 또는z= 일 경우
i++;
}
}
count++;
}
System.out.println(count);
}
}
확실히 count를 뽑는 방식이 나보다 깔끔하다.