using System;
namespace Baekjoon
{
internal class Program
{
static void Main(string[] args)
{
//이 코드의 규칙
//1. 특수문자는 카운트 하지 않음
//2. z일때 그전 글자가 d인지, 그다음 글자가 =인지 확인(만약 조건 부합하면 카운트 하지 않음)
//3. j일때 그전 글자가 l혹은 n인지, 그다음 글자가 =인지 확인(만약 조건 부합하면 카운트 하지 않음)
//소문자 a~z는 아스키코드 97~122임
//그냥 콘솔창 예쁘게 꾸미는 코드(심심해서 넣음)
Console.BackgroundColor = ConsoleColor.DarkCyan;
//내 입력값 받아올 변수
string input = Console.ReadLine();
//결과값 넣을 변수
int result = 0;
//내 입력값 길이만큼 반복
for (int i = 0; i < input.Length; i++)
{
//a~z일때(아스키코드 a~z의 범위에 들어갈 때)
if (97 <= input[i] && input[i] <= 122)
{
//지금 확인중인 글자가 z이며
//i - 1이 0 이상이고 i + 1이 내 입력값 길이보다 작을때(배열범위 넘어가는 오류를 방지하기 위함)
if (input[i] == 'z' && i - 1 >= 0 && i + 1 < input.Length)
{
//현재 확인중인 글자의 앞자리가 d이고 뒷자리가 =일때
//카운트하지 않고 반복문 넘김
if (input[i - 1] == 'd' && input[i + 1] == '=')
{
continue;
}
}
//지금 확인중인 글자가 j이며
//i - 1이 0 이상일때(배열범위 넘어가는 오류를 방지하기 위함)
else if (input[i] == 'j' && i - 1 >= 0)
{
//지금 확인중인 글자의 앞자리가 l 혹은 n일때
//카운트하지 않고 반복문 넘김
if (input[i - 1] == 'l' || input[i - 1] == 'n')
{
continue;
}
}
//결과값 +1
result++;
}
//아스키코드 a~z의 범위에 들어갈 때(즉, 특수기호일때) 카운트 안하고 반복문 넘김
//이 else문 굳이 없어도 되긴함
else
{
continue;
}
}
//결과값 출력
Console.WriteLine(result);
}
}
}
일단 이렇게 코드를 짜놨는데 다른 사람은 엄청 간단한 방식으로 풀었다
[백준 C#] 2941번 크로아티아 알파벳 (C#) :: Hostramus (tistory.com)
[백준 C#] 2941번 크로아티아 알파벳 (C#)
1. 문제 - [백준 C#] 2941번 크로아티아 알파벳 (C#) (https://www.acmicpc.net/problem/2941) 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경
hostramus.tistory.com
'백준' 카테고리의 다른 글
백준 25206번 c# (0) | 2024.01.18 |
---|---|
백준 1316번 c# (0) | 2024.01.17 |
백준 1157번 c# (0) | 2024.01.16 |
백준 10988번 c# (0) | 2024.01.16 |
백준 2444번 c# (0) | 2024.01.15 |