문제
꿍은 도비의 자유를 위해 영어를 가르치기로 결심했다. 하지만 도비는 바보라 ABC부터 배워야 한다.
그래서 꿍은 영어 문장과 알파벳 하나가 주어지면 그 알파벳이 문장에서 몇 번 나타나는지를 세는 문제들을 내주었다. 하지만 도비는 마법사고 컴공도 마법사다.
여러분은 도비를 위해 문제의 답을 알려주는 프로그램을 만들수 있을것이다!
입력
입력은 몇 개의 줄들로 이루어진다.
각 줄에는 하나의 소문자와 영어 문장이 공백으로 구분되어 주어진다.
각 문장은 길이가 1에서 250이며 입력의 마지막은 #이다.
출력
출력의 각 줄은 입력으로 주어진 소문자와 그 소문자 알파벳이 나타난 횟수로 이루어진다. 이때 문장에서 해당 알파벳이 소문자로 나타나던 대문자로 나타나던 모두 세야 한다.
풀이 과정
# 글자가 입력될 때 까지, 소문자와 영어 문장을 입력받고 해당 소문자가 영어 문장 안에서 얼마나 등장하는지를 센다.
한 문장을 통째로 입력받고, 소문자(0번째 글자)와 띄어쓰기(1번째 글자)를 건너뛴 2번째 글자부터 탐색을 시작해도 된다.
C
#include <stdio.h>
#include <string.h>
char str[300];
int main(void) {
while (1) {
gets(str);
if (str[0] == '#') break;
int count = 0;
for (int i = 2; i < strlen(str); i++) {
if (str[i] == str[0] || str[i] + 32 == str[0]) count += 1;
}
printf("%c %d\n", str[0], count);
}
return 0;
}
Python
import sys
input = sys.stdin.readline
while True:
string = input().rstrip()
if string[0] == '#': break
now = string[0]
string = string[2:].lower()
print(now, string.count(now))
'-- 예전 기록 > BOJ' 카테고리의 다른 글
[ BOJ ] 4740 : 거울, 오! 거울 ( BRONZE 3 ) / C, Python (0) | 2023.11.07 |
---|---|
[ BOJ ] 23037 : 5의 수난 ( BRONZE 2 ) / C, Python (0) | 2023.11.06 |
[ BOJ ] 2563 : 색종이 ( SILVER 5 ) / C, Python (0) | 2023.11.05 |
[ BOJ ] 1259 : 팰린드롬수 ( BRONZE 1 ) / C, Python (0) | 2023.11.05 |
[ BOJ ] 5598 : 카이사르 암호 ( BRONZE 2 ) / C, Python (0) | 2023.11.04 |