본문 바로가기
알고리즘/백준 문제 풀이

[BOJ/백준] 2941번 크로아티아 알파벳 - [c/c++] 풀이

by 미니상미니 2022. 10. 21.
반응형

https://www.acmicpc.net/problem/2941

 

2941번: 크로아티아 알파벳

예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z=

www.acmicpc.net

 

 

 

 


  • 문제


해설

문자열을 입력받은 후 i로 인덱스에 접근할 거다.

i를 1씩 증가시키며 표에 나와있는 크로아티아 알파벳이 존재한다면 i를 (크로아티아 알파벳 길이 - 1)만큼 증가시킨다.

i는 항상 1씩 증가하기 때문에 (크로아티아 알파벳 길이 - 1)만큼 증가시킨다.

 

코드

c

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

int main() {

	char s[101];
	int ans = 0, i = 0;

	scanf("%s", s);


	while (i < strlen(s)) {
		if (s[i] == 'c') {
			if (s[i + 1] == '=')
				i++;
			else if (s[i + 1] == '-')
				i++;
		}
		else if (s[i] == 'd') {
			if (s[i + 1] == '-')
				i++;
			else if (s[i + 1] == 'z' && s[i + 2] == '=')
				i += 2;
		}
		else if (s[i] == 'l') {
			if (s[i + 1] == 'j')
				i++;
		}
		else if (s[i] == 'n') {
			if (s[i + 1] == 'j')
				i++;
		}
		else if (s[i] == 's') {
			if (s[i + 1] == '=')
				i++;
		}
		else if (s[i] == 'z') {
			if (s[i + 1] == '=')
				i++;
		}

		ans++;
		i++;
	}
	
	printf("%d", ans);
}

 

c++

#include <iostream>

using namespace std;

int main() {

	string s;
	cin >> s;

	int ans = 0, i = 0;

	while (i < s.length()) {
		if (s[i] == 'c') {
			if (s[i + 1] == '=')
				i++;
			else if (s[i + 1] == '-')
				i++;
		}
		else if (s[i] == 'd') {
			if (s[i + 1] == '-')
				i++;
			else if (s[i + 1] == 'z' && s[i + 2] == '=')
				i += 2;
		}
		else if (s[i] == 'l') {
			if (s[i + 1] == 'j')
				i++;
		}
		else if (s[i] == 'n') {
			if (s[i + 1] == 'j')
				i++;
		}
		else if (s[i] == 's') {
			if (s[i + 1] == '=')
				i++;
		}
		else if (s[i] == 'z') {
			if (s[i + 1] == '=')
				i++;
		}

		ans++;
		i++;
	}
	
	cout << ans;
}

 

 

 

 

 

반응형

댓글