꼭 읽자.
번호 | 문제 유형 | 난이도 | 링크 |
---|---|---|---|
2557 | Hello world찍기 | 😆 | |
1000 | |||
2558 | |||
10950 | |||
10951 | |||
10952 | |||
10953 | |||
11021 | |||
11022 | |||
11718 | |||
11719 | |||
11720 | |||
11721 | |||
2741 | |||
2742 | |||
2739 | |||
1924 | |||
8393 | |||
10818 | |||
2438 | |||
2439 | |||
2440 | |||
2441 | |||
2442 | |||
2445 | |||
2522 | |||
2446 |
int main()
{
int num;
int sum = 0;
char ch;
cin >> num;
for (int i = 0; i < num; ++i)
{
cin >> ch;
sum += ch - 48;
}
cout << sum << endl;
return 0;
}
저거 cin >> ch아마도 ro 영역에 다 올린다음에
하나씩 읽어와서 sum에다가 더해주는거 같다.
이거 100개 제한? 이런말이 햇갈려셔 뻘짓 많이함.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
cin >> str;
for (int i = 0; i < str.size(); ++i)
{
cout << str[i];
if (i % 10 == 9) cout << endl;
}
return 0;
}
// 틀린거
#include <iostream>
#include <string>
using namespace std;
int main()
{
char str[100];
cin >> str;
for (int i = 0; i < 100; ++i)
{
cout << str[i];
if (str[i] == '\0') break;
if (i == 9) cout << endl;
}
return 0;
}
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
while (true)
{
getline(cin, str);
if (str == "") break;
cout << str << endl;
}
return 0;
}
이문제는 getline같은 함수 사용한 방법? 익히는 그런문제인듯
후기 남길것은 없음.
QuickSort사용함
#include <iostream>
#include <vector>
using namespace std;
std::vector<int> nums;
int inputN;
int Partition(vector<int>& vec, int left, int right)
{
int pivotData = vec[left];
int pLeft = left + 1;
int pRight = right;
while (pLeft <= pRight)
{
while (pLeft <= right && vec[pLeft] <= pivotData)
++pLeft;
while (pRight >= left + 1 && vec[pRight] >= pivotData)
--pRight;
if (pLeft < pRight)
std::swap(vec[pLeft], vec[pRight]);
}
std::swap(vec[left], vec[pRight]);
return pRight;
}
void QSort(vector<int>& vec, int left, int right)
{
if (left > right)
return;
int pivot = Partition(vec, left, right);
QSort(vec, left, pivot - 1);
QSort(vec, pivot + 1, right);
}
int main()
{
cin >> inputN;
for (int i = 0; i < inputN; ++i)
{
int num;
cin >> num;
nums.push_back(num);
}
QSort(nums, 0, nums.size()- 1);
for (int i = 0; i < nums.size(); ++i)
cout << nums[i] << endl;
return 0;
}
2438 별 찍기 - 1 성공 123061 238029 62.556%
2439 별 찍기 - 2 성공 112028 235277 56.273%
2440 별 찍기 - 3 성공 47004 77381 68.228%
2441 별 찍기 - 4 성공 43542 65901 74.144%
2442 별 찍기 - 5 성공 26146 53290 55.567%
2445 별 찍기 - 8 성공 18988 28961 73.251%
2446 별 찍기 - 9 성공 23886 45171 58.998%
2522
이거 그냥 처음에는 좀 짧게 짤려고했는데..
특히 2446번 같은거
사람들 다 for문을 나누어서 품.
그래서 나도 그냥
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int loop = 0;
for (int i = 0; i < n; ++i)
{
for (int j = 0; j < i; ++j)
cout << " ";
for (int k = 0; k < (n * 2) - loop - 1; ++k)
cout << "*";
cout << '\n';
loop += 2;
}
loop = 0;
for (int i = 0; i < n - 1; ++i)
{
for (int j = 0; j < n - 2 - i; ++j)
cout << " ";
for (int k = 0; k < loop + 3; ++k)
cout << "*";
cout << '\n';
loop += 2;
}
return 0;
}
이런식으로 for문 두개로 품.