본문 바로가기

백준/C++

(167)
[C++] 백준 11279번 - 최대 힙 문제 11279번https://www.acmicpc.net/problem/11279 #include #include #include using namespace std;int main() { int n, x; vector v; priority_queue pq; cin >> n; for (int i = 0; i > x; if (x == 0) { if (pq.empty()) { v.push_back(0); } else { v.push_back(pq.top()); pq.pop(); } } else { pq.push(x); } } for (int i = 0; i
[C++] 백준 2145번 - 숫자 놀이 문제 2145번https://www.acmicpc.net/problem/2145  n의 각 자릿수를 더하기 위해 %로 한자리씩 더하고 /로 다음 자릿수로 넘어간다. 이때 한자리만 남아 n을 10으로 나눴을때 몫은 0이 되기 때문에 0보다 클동안만 반복문을 실행해준다. 여기서 끝이 아니라 한자리만 남을 때까지 이 규칙을 반복해야하기 때문에 n이 9보다 클(9보다 크면 두자리수)동안 반복해준다. 그렇게 나온 temp를 n에 넣어서 n을 출력해준다. 이것을 n에 0이 입력되기 전까지 반복해준다. #include using namespace std;int main() { int n; while (1) { cin >> n; if (n == 0) { break; } else { while (n > 9..
[C++] 백준 1681번 - 줄 세우기 문제 1681번https://www.acmicpc.net/problem/1681  입력을 받은 후 개수만큼 반복문을 돌릴 때 find()를 통해 문자가 포함되어있는지 확인한다. 여기서 검색 문자열이 없으면 string::npos를 반환한다.  #include #include using namespace std;int main() { int n, num = 0; char L; cin >> n >> L; for (int i = 0; i
[C++] 백준 3004번 - 체스판 조각 문제 3004번https://www.acmicpc.net/problem/3004 n이 1일때는 2, 2일때는 4, 3일때는 6... 이런 식이다. i가 짝수일때는 더해주는 num의 수를 1늘려주고, result에 num을 더해주면 된다.#include using namespace std;int main(){ int n, num = 1, result = 1; cin >> n; for(int i = 0; i
[C++] 백준 1550번 - 16진수 문제 1550번https://www.acmicpc.net/problem/1550  #include #include using namespace std;int main() { string s; cin >> s; int num = 0; for (int i = 0; i = 'A' && s[i] 숫자 } } cout
[C++] 백준 1173번 - 운동 문제 1173번https://www.acmicpc.net/problem/1173 맥박은 M을 넘거나 m보다 낮아지면 안 된다. 맥박이 T만큼 증가하기 때문에 M-m이 T보다 작다면 운동을 N분 할 수 없다. 그러므로 -1을 출력해준다. 초기 맥박을 h에 저장해두고 운동을 하는 경우(h+T가 M보다 작거나 같을 때) N분에서 1을 감소시킨다. 그리고 h에 T맥박만큼 증가시킨다. 만약 휴식하는 경우에는 현재 맥박 h에서 R을 빼고, 만약 현재 맥박이 m보다 작아진다면 h를 m으로 바꿔준다. 그리고 운동을 하는데 필요한 시간 time을 1증가시킨다. 만약 N이 0이라면 0분이기 때문에 그대로 time을 출력해준다.#include using namespace std;int main() { int N, m, M,..
[C++] 백준 1145번 - 적어도 대부분의 배수 문제 1145번https://www.acmicpc.net/problem/1145 다섯 개의 자연수를 크기가 5인 배열에 넣는다. 적어도 대부분의 배수를 알아야하기 때문에 해당 배수는 다섯 개의 자연수 중 가장 작은 수보다는 큰 수이다. 그러므로 따로 min변수에 '작은 수-1'을 넣어준다(나중에 ++를 해주기 때문에 1을 빼줌). 적어도 3개니까 cnt변수가 3보다 작을 때까지 반복문을 돌려준다. 찾는 배수인지 확인하기 위해 num에 담긴 자연수를 min에서 각각 나눴을 때 나머지가 0인지 본다. 0이면 나누어떨어진다는 소리이기 때문에 cnt변수를 1증가시킨다. 그렇게 적어도 3개로 나누어지는지 확인된 배수를 출력해주면 된다.#include using namespace std;int main() { in..
[C++] 백준 2083번 - 럭비 클럽 문제 2083번https://www.acmicpc.net/problem/2083  입력받아 입력값이 각각 #,0,0이라면 while문을 빠져나와주고 아니라면 조건에 따라 Senior인지 Junior인지 출력해주면 된다. #include #include using namespace std;int main() { string name = ""; int w = -1, age = -1; while (1) { cin >> name >> age >> w; if (name == "#" && age == 0 && w == 0) { break; } else if (age > 17 || w >= 80) { cout