본문 바로가기

전체 글

(233)
[C++] 백준 1076번 - 저항 문제 1076번https://www.acmicpc.net/problem/1076  이번 문제는 배열에 색, 값, 곱을 묶어서 저장해놓을까했는데 순서대로 되어있어서 그냥 색만 저장해놨다. 그리고 입력값이 어떤 색인지 비교해 3가지 색을 크기가 3인 배열에 저장한다. num[0]에는 10을 곱해 십의 자리로 만들고 num[1]과 더하여 result에 저장한다. 마지막으로 num[2]의 값만큼 10을 result에 곱해주면 된다.  #include #include using namespace std;int main() { string color[10] = { "black","brown","red","orange","yellow","green","blue","violet","grey","white" }; str..
[C++] 백준 2920번 - 음계 문제 2920번https://www.acmicpc.net/problem/2920 숫자를 입력받을때마다 연주 순서를 판단하여 a와 d를 각각 증가시켜준다. 만약 a가 8이라면 1부터 8까지 차례대로 연주했다는 뜻이기 때문에 ascending을 출력한다. d가 8이라면 8부터 1까지 차례대로 연주했다는 것이기 때문에 descending을 출력한다. 둘 다 아니라면 mixed를 출력한다.#include using namespace std;int main() { int num[8]; int a = 0, d = 0; for (int i = 0; i > num[i]; if (num[i] == i + 1) { a++; } else if (num[i] == 8 - i) { d++; } } if (a ==..
[C++] 백준 1676번 - 팩토리얼 0의 개수 문제 1676번https://www.acmicpc.net/problem/1676 0이 나올 때는 10을 곱했을때이기 때문에 10을 소인수분해해서 나오는 2와 5의 개수를 알아보면 된다. 여기서 2의 개수는 5의 개수보다 많기 때문에 몫을 구하여 5의 개수를 센다. #include using namespace std;int main() { int n, sum = 0; cin >> n; for (int i = 5; i
[C++] 백준 2163번 - 초콜릿 자르기 문제 2163번https://www.acmicpc.net/problem/2163  #include using namespace std;int main() { int n, m; cin >> n >> m; cout
[C++] 백준 1247번 - 부호 문제 1247번https://www.acmicpc.net/problem/1247 입력된 수가 양수이고 입력된 양수를 더하기 전도 양수인데, 더하고 난 후에 음수 => 오버플로우 발생입력된 수 음수이고 입력된 음수를 더하기 전의 수도 음수인데, 더하고 난 후의 수가 양수 => 언더플로우 발생 오버플로우가 발생한 횟수에서 언더플로우가 발생한 횟수를 뺐을 때 0이라면 저장된 합으로 판단아니라면 오버플로우(더 많으면 양수)와 언더플로우(더 많으면 음수) 횟수로 판단 #include using namespace std;int main() { int n; for (int i = 0; i > n; for (int j = 0; j > a; sum += a; if (a > 0 && pre > 0 && sum ..
[C++] 백준 11659번 - 구간 합 구하기 4 문제 11659번https://www.acmicpc.net/problem/11659 푸는데 테스트했을때는 맞게 출력되지만, 제출해보면 자꾸 시간 초과나고 틀리고 그래서 찾아보았다. 보니까 dp로 푸는 거라고 한다. 누적 합을 저장하고 누적 합 배열에서 구간 배열에 해당되는 값을 구하기 위해 빼주면 된다. #include #include using namespace std;int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, m; cin >> n >> m; vector num(n + 1); num[0] = 0; for (int i = 1; i > a; num[i] = num[i - 1] + a; } for (int i = 0;..
[C++] 백준 32025번 - 체육은 수학과목 입니다 문제 32025번https://www.acmicpc.net/problem/32025  입력받은 값 중에 작은 수의 반이 원하는 길이이다. 그런데 m로 입력받았으므로 cm로 바꾸기 위해 100을 곱한다. 여기서 MIN/2를 하면 소수점이 나올 수 있으므로 실수값을 할 수 있게 float로 한다. #include using namespace std;int main() { int h, w; cin >> h >> w; float MIN = min(h, w); cout
[C++] 백준 1075번 - 나누기 문제 1075번https://www.acmicpc.net/problem/1075 뒤에 두자리는 0으로 바꿔준다. 그리고 0부터 2자리수까지 반복문을 돌려 f로 나누어떨어지는지 확인한다. 나누어떨어진다면 그 값을 저장해 반복문을 빠져나온다. 그 값이 10보다 작다면 앞에 0을 출력한 후 출력해준다.#include using namespace std;int main() { int n, f, result = 0; cin >> n >> f; n -= n % 100; //뒤에 두자리는 뺌 for (int i = 0; i