๋ฐฑ์ค€/C++

[๋ฐฑ์ค€/C++] 25215๋ฒˆ ํƒ€์ดํ•‘

yulee_to 2022. 6. 29. 23:59

๋ฐฑ์ค€
๋ฐฑ์ค€ 25215๋ฒˆ
๋ฐฑ์ค€ 25215๋ฒˆ

 

๐Ÿ’ก์ฒซ๋ฒˆ์งธ ์•„์ด๋””์–ด

์†Œ๋ฌธ์ž<->๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๋€”๋•Œ๋งˆ๋‹ค ๋Š์–ด์„œ ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ผ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์—ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด iLoveINHA์˜ ๊ฒฝ์šฐ 1(i) / 1(L) / 3(ove) / 4(INHA)๋กœ ๋งŒ๋“ค๊ณ  ๊ทธ ์‚ฌ์ด์— ๋ณ„๊ณผ ๋งˆ๋ฆ„๋ชจ๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ๊ทœ์น™์„ ์ฐพ์•„๋ดค๋‹ค.

 

์˜ˆ์ œ 1) iLoveINHA

=>  1 1 * 3 โ—† 4

์˜ˆ์ œ 2) ConquerThePlanet

=> 1 * 6 1 * 2 1 * 5

 

๊ฐ™์€ ํฌ๊ธฐ๋ณ„๋กœ ๋‚˜๋ˆˆ ๋ฌธ์ž์—ด์˜ ์ฒซ๋ฒˆ์งธ๊ฐ€ ๋Œ€๋ฌธ์ž์ธ์ง€ ์†Œ๋ฌธ์ž์ธ์ง€ ํ™•์ธํ•ด์„œ ๋Œ€๋ฌธ์ž๋ฉด ์ˆซ์ž ๋ฐฐ์—ด์˜ ํ™€์ˆ˜๋ฒˆ์งธ๊ฐ€ ๋Œ€๋ฌธ์ž, ์†Œ๋ฌธ์ž๋ฉด ์ˆซ์ž ๋ฐฐ์—ด์˜ ์ง์ˆ˜๋ฒˆ์งธ๊ฐ€ ๋Œ€๋ฌธ์ž์ด๋‹ค. ๋”ฐ๋ผ์„œ ํ™€/์ง์— ๋”ฐ๋ผ ๋Œ€๋ฌธ์ž/์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค.

 

ํ˜„์žฌ ๋งˆ๋ฆ„๋ชจ๊ฐ€ ํ™œ์„ฑํ™”๋˜์—ˆ๋Š”์ง€ ๊ฐ™์€ ํฌ๊ธฐ์˜ ๋ฌธ์ž๊ฐ€ ๋ช‡๊ฐœ์ธ์ง€ ํ™•์ธ

1. ํ™œ์„ฑํ™”

   1.1 ๋Œ€๋ฌธ์ž (1๊ฐœorN๊ฐœ) - ๊ทธ๋ƒฅ ์ž…๋ ฅ

   1.2 ์†Œ๋ฌธ์ž (1๊ฐœ) - ๋ณ„๋กœ ์ฒ˜๋ฆฌ

   1.3 ์†Œ๋ฌธ์ž (N๊ฐœ) - ๋งˆ๋ฆ„๋ชจ๋กœ ์ฒ˜๋ฆฌ

2. ๋น„ํ™œ์„ฑํ™”

   2.1 ๋Œ€๋ฌธ์ž (1๊ฐœ) - ๋ณ„๋กœ ์ฒ˜๋ฆฌ

   2.2 ๋Œ€๋ฌธ์ž (N๊ฐœ) - ๋งˆ๋ฆ„๋ชจ๋กœ ์ฒ˜๋ฆฌ

   2.3 ์†Œ๋ฌธ์ž (1๊ฐœorN๊ฐœ) - ๊ทธ๋ƒฅ ์ž…๋ ฅ

 

์˜ˆ์ œ 1๋กœ ์œ„ ๊ทœ์น™์„ ์ ์šฉํ•ด๋ณด์ž.
์ฒ˜์Œ์— ๋งˆ๋ฆ„๋ชจ๋Š” ๋น„ํ™œ์„ฑํ™”๋˜์–ด์žˆ๋‹ค.
์˜ˆ์ œ 1์„ ์ˆซ์ž๋ฐฐ์—ด v๋กœ ๋ฐ”๊พธ๋ฉด 1 1 3 4์ด๊ณ  ์ฒซ๋ฒˆ์งธ ๋ฌธ์ž์—ด์ด ์†Œ๋ฌธ์ž์ด๋ฏ€๋กœ ์ˆซ์ž๋ฐฐ์—ด์˜ ์ง์ˆ˜๋ฒˆ์งธ๊ฐ€ ๋Œ€๋ฌธ์ž์ด๋‹ค.
ํŽธ์˜์ƒ ๋ฐฐ์—ด์˜ ์ฒซ๋ฒˆ์งธ๋ฅผ ์ธ๋ฑ์Šค 1์ด๋ผ๊ณ  ํ•˜์ž.

v[1]์˜ ๊ฒฝ์šฐ ์†Œ๋ฌธ์ž(1)์ด๋ฉด์„œ ๋งˆ๋ฆ„๋ชจ ๋น„ํ™œ์„ฑํ™”์ด๋ฏ€๋กœ ๊ทธ๋ƒฅ pass
v[2]์˜ ๊ฒฝ์šฐ ๋Œ€๋ฌธ์ž(1)์ด๋ฉด์„œ ๋งˆ๋ฆ„๋ชจ ๋น„ํ™œ์„ฑํ™”์ด๋ฏ€๋กœ ๋ณ„๋กœ ์ฒ˜๋ฆฌ
v[3]์˜ ๊ฒฝ์šฐ ์†Œ๋ฌธ์ž(3)์ด๋ฉด์„œ ๋งˆ๋ฆ„๋ชจ ๋น„ํ™œ์„ฑํ™”์ด๋ฏ€๋กœ ๊ทธ๋ƒฅ pass
v[4]์˜ ๊ฒฝ์šฐ ๋Œ€๋ฌธ์ž(4)์ด๋ฉด์„œ ๋งˆ๋ฆ„๋ชจ ๋น„ํ™œ์„ฑํ™”์ด๋ฏ€๋กœ ๋งˆ๋ฆ„๋ชจ ํ™œ์„ฑํ™”
๋ณ„๊ณผ ๋งˆ๋ฆ„๋ชจ๊ฐ€ ์“ฐ์ธ๊ฒŒ 2๊ฐœ์ด๋ฏ€๋กœ ์ด ๋ฌธ์ž์˜ ๊ฐœ์ˆ˜ 9+2ํ•ด์„œ 11๋ฒˆ !!

 

 

์ฒซ๋ฒˆ์งธ ์•„์ด๋””์–ด๋กœ "๋งž์•˜์Šต๋‹ˆ๋‹ค!"๊ฐ€ ๋–ด๋‹ค!โœŒ๏ธ

๋ฐฑ์ค€ 25215๋ฒˆ
๋งž์•˜์Šต๋‹ˆ๋‹ค!!

 

 

์•„๋ž˜๋Š” ์ œ์ถœํ•œ ์ฝ”๋“œ์ด๋‹ค. ์ฝ”๋“œ์™€ ์œ„ ์˜ˆ์‹œ์—์„œ์˜ ํ™€์ˆ˜๋ฒˆ์งธ์—์„œ ๋Œ€๋ฌธ์ง€์ธ์ง€ ์†Œ๋ฌธ์ž์ธ์ง€๋Š” ๋‹ค๋ฅด๋‹ˆ ์ฃผ์˜!

#include <iostream>
#include <string>
#include <vector>
using namespace std;
bool iscapital (char x) {
    if( x >='A' && x <='Z') return true;
    else return false;
}

int main (){
    cin.tie(NULL);
    ios::sync_with_stdio(false);

    string input;
    cin >> input;

    bool isFirstCap = false; //์ฒซ๋ฌธ์ž๊ฐ€ ์†Œ๋ฌธ์ž์ธ์ง€ ๋Œ€๋ฌธ์ž์ธ์ง€ ๊ตฌ๋ณ„ (๋Œ€-true, ์†Œ-false)
    bool isCapsLock = false; //๋งˆ๋ฆ„๋ชจ๊ฐ€ ํ™œ์„ฑํ™”๋˜๋ฉด true ๋น„ํ™œ์„ฑํ™” false
    bool isUpper = false; // ํ˜„์žฌ ๋ฌธ์ž๋“ค์ด ๋Œ€๋ฌธ์ž๋ฉด true ์†Œ๋ฌธ์ž๋ฉด false

    vector<int> v;
    int total = 0;

    if( isupper(input[0])) {
        isFirstCap = true;
        isUpper = true;
    }
    int cnt =0;
    for(int i=0; i < input.size(); i++){
        if( isUpper && iscapital(input[i])) {
            cnt++;
            total++;
        }
        else if(isUpper&& !iscapital(input[i])){
            v.push_back(cnt);
            cnt =1;
            isUpper = false;
            total++;
        }
        else if( !isUpper && iscapital(input[i])){
            v.push_back(cnt);
            cnt =1;
            isUpper = true;
            total++;
        }
        else if( !isUpper && !iscapital(input[i])){
            cnt++;
            total++;
        }
    }
    v.push_back(cnt);

    if( isFirstCap){
        for(int j=0; j < v.size() ;j++){
            if( isCapsLock == true && j % 2==1) {
                if( v[j] == 1) total++;
                else if( v[j] > 1) {
                    isCapsLock= false;
                    total++;
                }
            }
            else if( !isCapsLock && j % 2==0) {
                if( v[j] == 1) total++;
                else if( v[j] >1 ) {
                    isCapsLock = true;
                    total++;
                }
            }
        }
    }
    else {
        for(int j=0;j < v.size() ; j++){
            if( isCapsLock && j % 2== 0) {
                if( v[j] == 1) total++;
                else if( v[j] >1 ) {
                    isCapsLock = false;
                    total++;
                }
            }else if( !isCapsLock && j % 2== 1) {
                if( v[j] == 1) total++;
                else if( v[j] >1 ) {
                    isCapsLock = true;
                    total++;
                }
            }
        }
    }
    cout << total ;

}

 

728x90