Updated:

1. 문제 링크

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

2. 사용 알고리즘

구현

3. 풀이

  1. 소문자, 대문자, 숫자, 공백의 개수를 저장할 크기가 4인 배열 선언

  2. 아스키 코드를 이용하여 해당 문자에 해당하는 배열의 값 증가

    a : 97, b : 98, c : 99, ...

    A : 65, B : 66, C : 67, ...

    0 : 48, 1 : 49, 2 : 50, ...

4. 소스 코드

4-1. C++

https://github.com/dev-aiden/problem-solving/blob/main/boj/10820.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <string>
#include <vector>

using namespace std;

vector<int> v(4);

int main(void) {
    ios_base::sync_with_stdio(false);
    string s;
    while (getline(cin, s)) {
        for (int i = 0; s[i]; ++i) {
            if (s[i] >= 97 && s[i] <= 122) ++v[0];
            else if (s[i] >= 65 && s[i] <= 90) ++v[1];
            else if (s[i] >= 48 && s[i] <= 57) ++v[2];
            else if (s[i] == ' ') ++v[3];
        }
        for (int i = 0; i < 4; ++i) {
            cout << v[i] << " ";
            v[i] = 0;
        }
        cout << "\n";
    }
    return 0;
}

4-2. JAVA

https://github.com/dev-aiden/problem-solving/blob/main/boj/10820.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

    static int arr[] = new int[4];

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        String s;
        while((s = br.readLine()) != null) {
            int len = s.length();
            for(int i = 0; i < len; ++i) {
                if (s.charAt(i) >= 97 && s.charAt(i) <= 122) ++arr[0];
                else if (s.charAt(i) >= 65 && s.charAt(i) <= 90) ++arr[1];
                else if (s.charAt(i) >= 48 && s.charAt(i) <= 57) ++arr[2];
                else if (s.charAt(i) == ' ') ++arr[3];
            }
            for(int i = 0; i < 4; ++i) {
                sb.append(arr[i]).append(" ");
                arr[i] = 0;
            }
            sb.append("\n");
        }
        System.out.println(sb);
    }
}

Updated:

Leave a comment