C++

[백준 알고리즘] 2386번 : 도비의 영어 공부, c++

2022. 3. 23. 20:49

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

 

2386번: 도비의 영어 공부

출력의 각 줄은 입력으로 주어진 소문자와 그 소문자 알파벳이 나타난 횟수로 이루어진다. 이때 문장에서 해당 알파벳이 소문자로 나타나던 대문자로 나타나던 모두 세야 한다.

www.acmicpc.net

c++로 백준 2386번 문제를 풀어보겠다.

 

 

 

 

 

문제

꿍은 도비의 자유를 위해 영어를 가르치기로 결심했다. 하지만 도비는 바보라 ABC부터 배워야 한다.

그래서 꿍은 영어 문장과 알파벳 하나가 주어지면 그 알파벳이 문장에서 몇 번 나타나는지를 세는 문제들을 내주었다. 하지만 도비는 마법사고 컴공도 마법사다.

여러분은 도비를 위해 문제의 답을 알려주는 프로그램을 만들수 있을것이다!

입력

입력은 몇 개의 줄들로 이루어진다.

각 줄에는 하나의 소문자와 영어 문장이 공백으로 구분되어 주어진다.

각 문장은 길이가 1에서 250이며 입력의 마지막은 #이다.

출력

출력의 각 줄은 입력으로 주어진 소문자와 그 소문자 알파벳이 나타난 횟수로 이루어진다. 이때 문장에서 해당 알파벳이 소문자로 나타나던 대문자로 나타나던 모두 세야 한다.

예제 입력 1 복사

g Programming Contest
n New Zealand
x This is quite a simple problem.
#

예제 출력 1 복사

g 2
n 2
x 0

 

 

 

 

<문제 풀이>

 1. while문을 반복하며 주어진 문제를 해결한다.

 

- while 반복문 코드 내용 -

문자 ch 하나를 입력받는다.

만약 입력받은 char이 '#'이라면, 반복문을 종료한다.

문자열을 입력받는다.

for문을 통해 문자열을 돌며, ch와 같은 문자가 있다면 count값을 하나 증가시킨다.

    (문자열의 문자를 ch와 비교하기 전에, tolower()함수를 이용해 대문자라면 소문자로 바뀌도록 한다.)

ch 값과 계산한 count 값을 출력한다.

다시 while문을 반복한다.

 

 

 

코드는 다음과 같다.