๐ก์ฒซ๋ฒ์งธ ์์ด๋์ด
์๋ฌธ์<->๋๋ฌธ์๋ก ๋ฐ๋๋๋ง๋ค ๋์ด์ ๋ฌธ์์ด์ ๊ฐ์๋ฅผ ์ผ ๋ฐฐ์ด์ ๋ง๋ค์๋ค.
์๋ฅผ ๋ค์ด 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๋ฒ !!
์ฒซ๋ฒ์งธ ์์ด๋์ด๋ก "๋ง์์ต๋๋ค!"๊ฐ ๋ด๋ค!โ๏ธ
์๋๋ ์ ์ถํ ์ฝ๋์ด๋ค. ์ฝ๋์ ์ ์์์์์ ํ์๋ฒ์งธ์์ ๋๋ฌธ์ง์ธ์ง ์๋ฌธ์์ธ์ง๋ ๋ค๋ฅด๋ ์ฃผ์!
#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 ;
}
'๋ฐฑ์ค > C++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/C++] 1790๋ฒ ์ ์ด์ด ์ฐ๊ธฐ 2 (0) | 2022.07.11 |
---|---|
[๋ฐฑ์ค/C++] 16936๋ฒ ๋3๊ณฑ2 (0) | 2022.07.10 |
[๋ฐฑ์ค/C++] 15558๋ฒ ์ ํ ๊ฒ์ (0) | 2022.07.07 |
[๋ฐฑ์ค/C++] 25212๋ฒ ์กฐ๊ฐ ์ผ์ดํฌ (0) | 2022.07.03 |
[๋ฐฑ์ค/C++] 25214๋ฒ ํฌ๋ฆผ ํ์คํ (0) | 2022.07.01 |