BOJ - 종이접기 16504
·
코딩테스트
해결방법문제를 반으로 접고, 변수에 저장하고... 하는 것보다 그냥 처음부터 전부 더하는게 훨씬 빠르고 정확해서 그렇게 만들었다.추후 실력이 더 늘어난다면 한번 정석?대로 푸는 방식을 도전해봐야겠다... 정답 코드#include using namespace std;int main(void){ int N = 0; long long Ent = 0, K; cin >> N; for (int i = 0; i > K; Ent += K; } } cout
BOJ - 미국 스타일 2712
·
코딩테스트
해결방법이 문제또한 핵심은 소수점 넷째 자리까지 어떻게 출력하는가 이다. setprecision() 함수를 사용하여 처리한다. 정답 코드#include #include using namespace std;int main(){ int T; float SI; string Str; cin >> T; for (int i = 0; i > SI >> Str; if (Str == "kg") { SI *= 2.2046f; Str = "lb"; } else if (Str == "lb") { SI *= 0.4536f; Str = "kg"; } ..
BOJ - 전투 드로이드 가격 5361
·
코딩테스트
해결방법문제의 핵심은 소수점 둘째 자리까지 어떻게 출력하는가 이다. setprecision() 함수를 사용하여 처리한다. 정답 코드#include #include using namespace std;int main(){ float Total, Price[5] = { 350.34f, 230.90f, 190.55f, 125.30f, 180.90f }; int N, M[5]; cin >> N; for (int i = 0; i > M[j]; Total += Price[j] * M[j]; } cout
BOJ - 수 정렬하기 2 2751
·
코딩테스트
해결방법일반적인 Cin과 Cout을 사용하면 제한시간을 초과한다고 뜨게 된다.해결책은 ios::sync_with_stdio(false);와 cin.tie(NULL);를 통해 출력 속도를 향상시키는 것이다. ios::sync_with_stdio(false);는 C와 C++ 표준 stream의 동기화를 비활성화시켜 입출력 속도를 향상시킨다.cin.tie(NULL);는 기존의 cin과 cout을 묶어주는 과정을 수행하지 않게 만들어 입출력 속도를 향상시킨다. 마지막으로 \n'을 사용하면 endl보다 더 빠르게 처리가 가능하다. 정답 코드#include #include #include using namespace std;int main(){ ios::sync_with_stdio(false); cin...
BOJ - 불안정한 수열 28323
·
코딩테스트
해결방법결국, 불안정한 수열 중 가장 큰 케이스를 구하면 되는 것인데, 인접한 두 수를 더해서 홀수가 나오려면, 홀수 + 짝수의 경우밖에 없다.즉, 홀짝홀짝순으로 배치된 경우를 찾아서 그 길이를 재면 되는 것이다.예를 들어 5짜리 배열에 3 1 4 1 5로 입력되었다면, 홀짝홀짝이 가장 긴 부분, 3 4 1 5를 골라서 4짜리 배열을 만들 수 있다. 정답 코드#include #include using namespace std;int main(){ int N; cin >> N; vector A(N); for (int i = 0; i > A[i]; } int max = 1; int prev = A[0] % 2; for (int i = 1; i
BOJ - 약수 1037
·
코딩테스트
해결방법약수를 가지고 어떤 수를 구하는 방법은 주어진 수중 1을 제외한 가장 작은 수와 가장 큰 수를 곱한 값을 구하면 된다.문제에서는 1이 없기 때문에 바로 하면 된다. 정답 코드#include #include #include using namespace std;int main(){ int N; cin >> N; vector Arr(N); for (int i = 0; i > Arr[i]; } int Small = *min_element(Arr.begin(), Arr.end()); int Big = *max_element(Arr.begin(), Arr.end()); int result = Small * Big; cout