11718. ๊ทธ๋๋ก ์ถ๋ ฅํ๊ธฐ
11719. ๊ทธ๋๋ก ์ถ๋ ฅํ๊ธฐ 2
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
while(getline(cin, s)){
cout << s << "\n";
}
}
- 11718์ ์ธํ์ ํ ์ค ์๋ค์ ๊ณต๋ฐฑ์ด ์๊ณ , ๋น ์ค์ด ์์, 11719๋ ๊ทธ ๋ ์ผ์ด์ค๋ฅผ ํฌํจ
- ๋ชจ๋ ์ ํ์ด๋ก ํด๊ฒฐ ๊ฐ๋ฅ
์ฐธ๊ณ ํ์ด ๋งํฌ, getline() ๊ด๋ จ ๋งํฌ
// std::istream::getline()
istream& getline(char* s, streamsize n);
istream& getline(char* s, streamsize n, char delim);
// std::getline()
istream& getline(istream& is, string& str);
istream& getline(istream& is, string& str, char delim);
- getline() ํจ์๋ <iostream>์๋ ์๊ณ <string>์๋ ์์
- <iostream>์ ์ ์๋์ด ์๋ getline() ํจ์๋ char*๋ฅผ ์ธ์๋ก ๋ฐ์ (NULL๋ก ๋๋จ)
- <string>์ cpp์์ ์ฐ๋ string ๊ฐ์ฒด๊ฐ ์ ์๋์ด ์๋ ํค๋์ด๊ณ , getline() ํจ์ ์ธ์๋ string ๊ฐ์ฒด์
- <string>๊ณผ <cstring>์ ๋ค๋ฆ (<cstring>์ c์์ ์ฐ๋ char* ๊ด๋ จ ํจ์๋ค์ด ์กด์ฌ: string.h์ ๋น์ท)
- delim์ ์ ํ์๋ก delim์ ๋๋ฌํ๋ฉด ์ถ์ถ์ด ์ค๋จ๋จ (๊ธฐ๋ก๋์ง ์์ง๋ง ์คํธ๋ฆผ์์ ์ฌ๋ผ์ง) (๋ฐ๋ก ์ง์ ํ์ง ์์ผ๋ฉด '\n')
cin๊ณผ ํผ์ฉํด์ ์ธ ๋๋ ์ฃผ์:
- cin์ whitespace๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ถ๋ฆฌํ์ฌ ํ๋์ ์ ๋ ฅ์ผ๋ก ๋ฐ์ง๋ง, ๊ทธ whitespace๋ฅผ ๋ฒํผ์ ๊ทธ๋๋ก ๋จ๊ฒจ๋
- cin์ whitespace๋ฅผ ๋ฌด์ํ๋ formatting๋ ํจ์์ด๋ฏ๋ก cin๋ง ์ธ ๋๋ ๋ฌธ์ ๊ฐ ์์
- getline์ '\n'์ ์ก๊ณ ๊ทธ ์ง์ ๊น์ง๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์๋ค์ธ ํ, '\n'์ ๋ฒํผ์์ ์ ๊ฑฐํจ
- ๋ฐ๋ผ์ cin ๋ค์ getline์ ์ฌ์ฉํ ๋ cin์ด ๋ฒํผ์ ๋จ๊ฒจ๋ '\n'์ getline์ด ์ก์ ์ํ๋ ๋๋ก ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์์ ์ ์์
- ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ cin.ignore()๋ก ๋ฒํผ๋ฅผ ๋น์์ค ์ ์์
11720. ์ซ์์ ํฉ
// cin๋ง ์ฌ์ฉํ ๋ฒ์
#include<iostream>
#include<string>
using namespace std;
int main()
{
int N;
cin >> N;
string s;
cin >> s;
int sum = 0;
for(int i=0; i<N; i++){
sum += (s[i] - '0');
}
cout << sum;
}
// cin๊ณผ getchar ํผ์ฉํ ๋ฒ์
#include<iostream>
#include<string>
using namespace std;
int main()
{
int N;
cin >> N;
cin.ignore();
char c;
int sum = 0;
for(int i=0; i<N; i++){
c = getchar();
sum += (c - '0');
}
cout << sum;
}
- cin์ด ๋จ๊ฒจ๋ '\n'์ getchar()๊ฐ ๋ฐ์ง ์๋๋ก cin.ignore() ํด์ฃผ์์
11721. ์ด ๊ฐ์ฉ ๋์ด ์ถ๋ ฅํ๊ธฐ
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string s;
cin >> s;
int start = 0, num;
while(true){
num = min(10, (int)(s.length() - start));
if(num <= 0) break;
cout << s.substr(start, num) << "\n";
start += num;
}
}
'Problem Solving > Algorithm, Tips' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ต๋ ์ฐ์ ๋ถ๋ถ ์์ด์ ํฉ (0) | 2020.06.23 |
---|---|
Kruskal / Prim Algorithm (ํฌ๋ฃจ์ค์นผ / ํ๋ฆผ ์๊ณ ๋ฆฌ์ฆ) (0) | 2020.06.02 |
Dijkstra Algorithm (๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ) (0) | 2020.06.02 |
cpp์์ 2์ง์๋ก ์ถ๋ ฅํ๋ ๋ฒ (bitset) (0) | 2020.05.06 |
[SWEA] 2071. ํ๊ท ๊ฐ ๊ตฌํ๊ธฐ - ์์์ N ๋ฒ์งธ ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผ (0) | 2019.12.27 |
๋๊ธ