백준 (229) 썸네일형 리스트형 [C++] 백준 1253번 - 좋다 문제 1253번https://www.acmicpc.net/problem/1253 이번 문제는 투포인터를 사용하는 문제이다. N개의 수 중 어떤 수가 다른 수 두 개의 합으로 나타낼 수 있는지 알아내고, 그 개수를 출력하면 된다. 배열에 수를 넣고 해당 수의 개수만큼 정렬을 해준다(투포인터를 이용하려면 정렬은 필수!). 투 포인터 left에는 0, right에는 N-1로 초기화한다. 같은 수의 합으로 나타내면 안 되기 때문에 left가 right보다 작을 때까지 계속해서 반복해주고, left,right를 인덱스로 넣은 값의 합과 찾을 숫자를 비교해준다. 같다면 서로 다른 숫자의 합이 찾는 값이어야하기 때문에 찾을 숫자의 인덱스 i와 left, right를 비교해준다. 둘 다 같지 않다면 좋은 수의 개수.. [C++] 백준 19532번 - 수학은 비대면강의입니다 문제 19532번https://www.acmicpc.net/problem/19532 이번 문제는 자바스크립트로도 풀었던 문제이다. 일단 변수에 각 숫자를 입력받아 방정식에 값을 넣어 성립하는지 확인하고, 성립한다면 해당 i, j 값을 출력한 후 반복문을 빠져나온다. #include using namespace std;int main(){ int a,b,c,d,e,f; cin >> a >> b >> c >> d >> e >> f; for(int i=-999;i [C++] 백준 2231번 - 분해합 문제 2231번https://www.acmicpc.net/problem/2231 1부터 시작하여 더한 값이 N과 같은지 비교하여 같으면 해당 result값을 출력하고, 아니면 0을 출력한다. #include using namespace std;int main() { int N, result = 0; cin >> N; for (int i = 1; i [C++] 백준 5635번 - 생일 문제 5635번https://www.acmicpc.net/problem/5635 찾아보니까 pair안에 pair을 넣을 수 있는 것을 알았다. 순서가 이름, 일, 월, 연도 이런 식으로 되어있으니 벡터에 반대로 저장해서 정렬을 해주면 나이가 많은 사람부터 순서대로 벡터에 저장된다. 나이가 가장 적은 사람과 가장 많은 사람을 출력해야하므로 맨뒤에 있는 사람과 맨 앞에 있는 사람을 출력해주면 된다. #include #include #include #include using namespace std;int main() { int N; cin >> N; vector, pair>> v(N); for (int i = 0; i > v[i].second.second >> v[i].second.fi.. [C++] 백준 11652번 - 카드 문제 11652번https://www.acmicpc.net/problem/11652 입력받은 값들을 정렬한 후 앞뒤를 비교하여 같으면 count해준다. 그렇게 count값이 max보다 크다면 max를 count값으로 업데이트해주고 출력해야하는 값을 count가 많은 입력값으로 업데이트해준다. 그렇게 반복문을 마치고 result값을 출력해주면 원하는 값을 구할 수 있다. #include #include #include using namespace std;int N;vector v;long long a;int main() { cin >> N; for (int i = 0; i > a; v.push_back(a); } sort(v.begin(), v.end()); int count = 0, max = 0;.. [C++] 백준 9946번 - 단어 퍼즐 문제 9946번https://www.acmicpc.net/problem/9946 케이스마다 번호를 붙여야하기 때문에 count에 0을 넣고 ++를 앞에 붙여 처음 반복문을 돌릴 때 값이 1이 되도록 만든다.만약 입력받은 두 값이 END면 반복문을 빠져나와주고, 아니라면 해당 값들을 정렬한다. 정렬한 두 값이 같으면 same을, 아니면 different를 출력한다. #include #include #include using namespace std;int main(){ int count = 0; while(++count){ string a, b; cin >> a >> b; if(a == "END" && b == "END"){ break; .. [C++] 백준 10610번 - 30 문제 10610번https://www.acmicpc.net/problem/10610 30의 배수가 되려면 3의 배수 + 10의 배수여야 한다. 각 자리를 다 더해 3으로 나눠 떨어지면 3의 배수이고 맨 마지막 자리가 0이면 10의 배수이다.그래서 숫자의 개수를 알아내기 위해 문자열로 받아 해당 값들에 '0'을 빼 int형으로 만든 후 벡터에 넣어준다. 가장 큰 수를 만들어야하기 때문에 내림차순으로 정렬하고 check변수를 이용하여 30의 배수인지 알아낸다. check변수에 각 숫자들을 다 더해 나온 값이 3의 배수이거나 10의 배수이면 -1을 출력하고, 아니면 30의 배수라는 뜻이기 때문에 벡터에 들어있는 값을 출력한다. #include #include #include #include using name.. [C++] 백준 2075번 - N번째 큰 수 문제 2075번https://www.acmicpc.net/problem/2075 n*n의 표에 수 n*n개가 채워져 있기 때문에 num에 해당 수만큼 넣어주고 오름차순으로 정렬했다. 그리고 n번째 큰 수를 출력해야 하기 때문에 전체 수(N=n*n)에서 n을 빼준 인덱스에 있는 값을 출력해준다. #include #include using namespace std;int num[2250000];int n, N;int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n; N = n * n; for (int i = 0; i > num[i]; } sort(num, num+N); cout 이전 1 ··· 8 9 10 11 12 13 14 ··· 29 다음