전체 글 142

BAEKJOON 1027 - 고층 건물

문제: https://www.acmicpc.net/problem/1027 처음에는 외적을 이용한 ccw 알고리즘으로 풀어봤는데(밑에 코드) 이상하게도 80% 정도에서 오답이 나와 간단하게 기울기를 구하는 방법으로 풀어봤습니다. 외적을 이용한 방법은 왜 틀렸는지 잘 모르겠네요;;; my solvingc++123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657#include #include #include #include #include #include using namespace std; int main(){ int n; cin >> n; vector heights; for..

BAEKJOON 1026 - 보물

문제: https://www.acmicpc.net/problem/1026 1000번과 1001번 이후로 가장 쉬운 문제인거 같네요. my solvingc++12345678910111213141516171819202122232425262728293031323334353637383940#include #include #include #include #include #include using namespace std;typedef long long ll; int main(){ int n; cin >> n; vector a, b; for (int k = 0; k num; if (k == 0) a.push_back(num); else b.push_back(num); } } sort(a.begin(), a.end(..

BAEKJOON 1024 - 수열의 합

문제: https://www.acmicpc.net/problem/1024 1023번 문제에서 씨름하다가 이렇게 쉬운 문제를 만나니 상당히 반갑네요 ㅋ수열의 합은 간단하게 n(n+1)/2 를 응용해서 계산하고 l 이 최대 100이므로 시간 복잡도도 크게 신경안쓰고 풀 수 있었습니다. my solvingc++123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354#include #include #include #include #include using namespace std;typedef long long ll; ll sum(ll startNum, int n){ if (n % 2 == ..

BAEKJOON 1022 - 소용돌이 예쁘게 출력하기

문제: https://www.acmicpc.net/problem/1022 규칙성을 찾아 좌표에 따른 각 숫자를 얻는 함수를 만들어 문제를 풀었습니다. my solvingc++123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778#include #include #include #include #include #include using namespace std; int getDigit(int n){ int ret = 0; while (n > 0) { ret++; n /= 10; } return ret;..

BAEKJOON 1021 - 회전하는 큐

문제: https://www.acmicpc.net/problem/1021 front 와 back 의 삽입과 삭제가 자유로운 std::list 을 이용해 풀어봤습니다. my solvingc++1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980#include #include #include #include #include #include #include using namespace std; list numbers; void pushLeft(){ int temp = numbers.front()..

BAEKJOON 1019 - 책 페이지

문제: https://www.acmicpc.net/problem/1019 우선 bruteForce 방법으로 몇 개의 숫자를 넣어 규칙을 찾아 문제를 풀었습니다.규칙은 99, 999, 999 그리고 199, 299, 399, 499 등을 넣어보면 발견할 수 있습니다. my solvingc++12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411..

BAEKJOON 1018 - 체스판 다시 칠하기

문제: https://www.acmicpc.net/problem/1018 더 좋은 풀이법이 있을 것 같긴하지만 완전 탐색으로도 충분히 시간내에 풀 수 있어 완전탐색으로 풀었습니다. my solvingc++1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768#include #include #include #include #include #include #include using namespace std; const int MAX_N = 50; int height, width;//0 is black, 1 is white. means b..

BAEKJOON 1017 - 소수 쌍

문제: https://www.acmicpc.net/problem/1017 우선 에라토스테네스의 체 방법으로 2000 까지 소수를 구해놓고 앞의 1014번 문제에서 사용한적이 있던 network flow (Ford Fulkerson algorithm) 방법으로 bipartite matching 문제를 푸는 방법을 이용하여 푼 문제입니다.처음에 이분 매칭(bipartite matching) 의 조건을 구성하는 것이 생각하기 어려운 부분일 수 있는데 주어진 숫자를 짝수와 홀수로 나눠 이분 그래프를 만드는 것이 중요합니다. 짝수와 짝수 또는 홀수와 홀수로는 무조건 짝수값이 나오기 때문에 소수가 절대 될 수 없고 이 점 때문에 이분 그래프가 성립이 될 수 있는거죠.그리고 첫 번째 주어진 값과 연결될 수 있는 값을..

BAEKJOON 1016 - 제곱 ㄴㄴ 수

문제: https://www.acmicpc.net/problem/1016 시간 복잡도를 줄이기위해 에라토스테네스의 체 방법을 사용해야했고, 공간 복잡도를 줄이기 위해 bit mask 방법과 주어진 최소값부터 에라토스테네스의 체를 적용하는 방법을 사용해 풀었습니다. my solvingc++12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061#include #include #include #include using namespace std;typedef long long ll; const ll MAX_N = 1000003;unsigned char sieve[(..

BAEKJOON 1015 - 수열 정렬

문제: https://www.acmicpc.net/problem/1015 간단한 정렬 문제입니다. 직접 정렬을 구현하지 않고 std의 multimap 을 이용해 풀었습니다. my solvingc++123456789101112131415161718192021222324252627282930313233343536373839404142434445#include #include #include #include #include using namespace std; int main(){ int n; vector numbers; cin >> n; multimap sortedNumbers; for (int i = 0; i > num; numbers.push_back(num); sortedNumbers.insert(ma..