※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 10808번 문제인 알파벳 개수이다.
문제는 아래 링크를 확인하자.

www.acmicpc.net/problem/10808

 

10808번: 알파벳 개수

단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다.

www.acmicpc.net

이 문제는 주어진 문자열에 들어있는 각 알파벳의 개수를 출력하는 문제이다.

ASCII 코드와 반복문을 이용해 문제를 풀어보자.

 

문자열 s에서의 'a'의 개수는 문자열 s를 살펴보면서 'a'의 개수를 직접 세어 구할 수 있다.

마찬가지로 문자열 s에서의 'b'의 개수는 문자열 s를 살펴보면서 'b'의 개수를 직접 세어 구할 수 있다.

 

'a' 이상 'z' 이하의 각 문자에 대하여 위와 같이 문자열 s를 한번씩 살펴보면서 각 알파벳의 개수를 세는 코드를 작성해 문제를 해결하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::string;

int main() {
    string s;
    cin >> s;
    for (int i = 97;i < 123;i++) { // ASCII 코드: char(97)~char(122)는 a~z이다
        int cnt = 0;
        char alphabet = char(i);
        int slen = s.length();
        for (int j = 0;j < slen;j++) { // string s의 각 글자가 현재 알파벳인지 확인
            if (s[j] == alphabet) {
                cnt += 1;
            }
        }
        cout << cnt << ' ';
    }
}

 

 

728x90

'BOJ' 카테고리의 다른 글

[BOJ 1977 // C++] 완전제곱수  (0) 2021.01.03
[BOJ 1475 // C++] 방 번호  (0) 2021.01.02
[BOJ 10988 // C++] 팰린드롬인지 확인하기  (0) 2021.01.01
[BOJ 2576 // C++] 홀수  (0) 2020.12.30
[BOJ 14470 // C++] 전자레인지  (0) 2020.12.29

※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※


이번에 볼 문제는 백준 2576번 문제인 홀수이다.
문제는 아래 링크를 확인하자.

www.acmicpc.net/problem/2576

 

2576번: 홀수

7개의 자연수가 주어질 때, 이들 중 홀수인 자연수들을 모두 골라 그 합을 구하고, 고른 홀수들 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어, 7개의 자연수 12, 77, 38, 41, 53, 92, 85가 주어지

www.acmicpc.net

이 문제에서는 100 미만의 자연수 7개가 입력으로 주어진다.

 

이 가운데 홀수가 없다면, 즉 2로 나눈 나머지가 1인 수가 없다면 -1을 출력하자.

 

그렇지 않다면(홀수가 있다면) 모든 홀수의 총합과 가장 작은 홀수를 구해 각 줄에 출력하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
using std::cin;
using std::cout;

int main() {
    int x;
    int summation = 0, minimum = 100; // 들어오는 홀수는 모두 100보다 작을 것이므로
    for (int i = 0;i < 7;i++) { // 숫자를 7번 읽는다
        cin >> x;
        if (x % 2 == 1) { // 홀수인지 확인: 2로 나눈 나머지가 1인지 확인
            summation += x; //summation: 홀수의 총합
            if (minimum > x) { // 지금까지 나온 가장 작은 숫자를 minimum에 저장
                minimum = x;
            }
        }
    }
    if (summation == 0) { // 홀수가 하나도 없었다면 모든 홀수의 합이 0이다
        cout << -1;
    }
    else { // 홀수가 하나라도 있었다면 모든 홀수의 합은 0이 아니다.
        cout << summation << '\n' << minimum;
    }
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 1977 // C++] 완전제곱수  (0) 2021.01.03
[BOJ 1475 // C++] 방 번호  (0) 2021.01.02
[BOJ 10988 // C++] 팰린드롬인지 확인하기  (0) 2021.01.01
[BOJ 10808 // C++] 알파벳 개수  (0) 2020.12.31
[BOJ 14470 // C++] 전자레인지  (0) 2020.12.29

※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 14470번 문제인 전자레인지이다.

문제는 아래 링크를 확인하자.

www.acmicpc.net/problem/14470

 

14470번: 전자레인지

JOI 군은 식사 준비를 위해 A℃의 고기를 전자레인지로 B℃까지 데우려고 한다. 고기는 온도가 0℃보다 낮을 때 얼어 있고, 0℃보다 높을 때는 얼어 있지 않다. 온도가 정확히 0℃일 때 고기는 얼어

www.acmicpc.net

문제의 상황을 주의 깊게 잘 읽고 그대로 구현하면 되는 문제이다.

 

처음 주어지는 고기의 온도 A는 0이 아닌 -100 이상 100 이하의 정수이다.

따라서 처음 주어진 고기가 0도인, 즉 고기가 녹아있는지 아닌지 숫자만 보고 알 수 없는 상태는 입력으로 주어지지 않는다. 이를 이용해 구현을 편하게 하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
using std::cin;
using std::cout;

int main()
{
    int A, B, C, D, E;
    int ans = 0;
    cin >> A >> B >> C >> D >> E;
    if (A < 0) { //고기가 얼어있다면
        ans += abs(A) * C + D + B * E;
    }
    else { //고기가 녹아있다면
        ans = (B - A) * E;
    }
    cout << ans;
    return 0;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 1977 // C++] 완전제곱수  (0) 2021.01.03
[BOJ 1475 // C++] 방 번호  (0) 2021.01.02
[BOJ 10988 // C++] 팰린드롬인지 확인하기  (0) 2021.01.01
[BOJ 10808 // C++] 알파벳 개수  (0) 2020.12.31
[BOJ 2576 // C++] 홀수  (0) 2020.12.30

+ Recent posts