![[백준 / BOJ] 2941번 크로아티아 알파벳 (C++, Python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBWgJc%2FbtrJil8DPIh%2FZKSV4QQFxFd1yBoaoCK0H0%2Fimg.png)
[백준 / BOJ] 2941번 크로아티아 알파벳 (C++, Python)◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 1. 17. 14:39
Table of Contents
반응형
링크 : https://www.acmicpc.net/problem/2941
2941번: 크로아티아 알파벳
예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z=
www.acmicpc.net
문제
문제 풀이
처음에는 아무 다른 알파벳도 들어가도 되나 싶어서 푸는 데 조금 오래 걸렸던 문제이다.
C++ 상세 풀이
더보기
우선 find함수를 쓰기 위해 vector을 선언해 안에 크로아티아 알파벳들을 넣어준다. 그 후, 크로아티아 알파벳이 없을때 까지 반복한다.
크로아티아 알파벳을 찾는다면 느낌표로 변경해서 출력 조건인 알파벳 갯수를 좀 더 쉽게 알수 있도록 한다.
vector<string> arr = {"c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="};
for (int i = 0; i < len; i++) {
while (true) {
val = str.find(arr[i]);
if (val == string::npos)
break;
str.replace(val, arr[i].length(), "!");
}
}
cout << str.length();
여기서 string:npos는 해당 글을 참고하면 좋을 듯하다.
Python 상세 풀이
더보기
replace 메서드를 사용해 쉽게 해결이 가능하다.
arr = ["c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="]
text = input()
for i in text:
text = text.replace(i, "!")
코드 전문
C++
Python
소감
반응형
'◎ 자료구조와 알고리즘 > 백준(BOJ) 문제풀이' 카테고리의 다른 글
[백준 / BOJ] 1712번 손익분기점 (C++, Python) (0) | 2022.01.18 |
---|---|
[백준 / BOJ] 1316번 그룹 단어 체커 (C++, Python) (0) | 2022.01.17 |
[백준 / BOJ] 5622번 다이얼 (C++, Python) (0) | 2022.01.17 |
[백준 / BOJ] 2908번 상수 (C++, Python) (0) | 2022.01.17 |
[백준 / BOJ] 1152번 단어의 개수 (C++, Python) (0) | 2022.01.17 |
@Reo :: 코드 아카이브
자기계발 블로그