2941번 크로아티아 알파벳 문제

김영헌·2022년 1월 24일
0

백준

목록 보기
6/7
post-thumbnail

문제

예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다.!

예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.

dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다.

조건

  • input은 100글자까지
  • 알파벳 소문자와 '-', '='로만 이루어짐
  • input에서 크로아티아 알파벳은 변경된 형태로 입력된다.

알고리즘

  1. 단어를 입력 받는다.
  2. 입력 받은 길이를 측정해서 저장한다. [strlen() 사용]
  3. if문을 사용해서 단어의 길이를 하나씩 빼주는 방식으로 구현한다.
  4. 빼고 남은 단어 수를 출력한다.

오늘 배운거

  • strlen(arr)하면 arr의 길이가 return 된다.

코드

#include <stdio.h>
#include <string.h>

int main(){
    char input[100];
    int total, len;

    scanf("%s", input);

    len = strlen(input);
    total = len;

    for(int i = 0; i < len; i++){
        if(input[i] == 'c'){
            if(input[i+1] == '=' || input[i+1] == '-')
                total--;
        }else if (input[i] == 'd'){
            if(input[i+1] == '-')
                total--;
            else if(input[i+1] == 'z')
                if(input[i+2] == '=')
                    total--;
        }else if(input[i] == 'n' || input[i] == 'l'){
            if(input[i+1] == 'j')
                total--;
        }
        else if(input[i] == 'z' || input[i] == 's'){
            if(input[i+1] == '=')
                total--;
        }
    }

    printf("%d", total);

    return 0;
}
profile
대기업 회장님

0개의 댓글