https://www.acmicpc.net/problem/17276 해설주대각 성분은 가운데 열로 이동시키고 가운데 열의 값은 부대각으로 이동, 부대각은 가운데 행으로 이동시키고 가운데 행은 주대각으로 한번씩 이동시키면 되는 문제이다.각도가 45도의 배수라 했으므로, 회전 횟수를 구하고 45로 나누어서구하고, 회전횟수만큼 45도씩 배열 전체를 회전시키면된다.각도가 음수인 경우에는 양수로 변환해서 처리해주도록하자. 코드#include #include #include #include #include #include #include #include #include #include using namespace std;using ll = long long;#define endl "\n"const int MAX ..
https://www.acmicpc.net/problem/1138 해설오민식의 방법대로 한 줄로 세우면 되는 문제이다.입력과 출력문을 보면서 이해를 했는데, 2 1 1 0 으로 입력을 받는 경우 1번 사람 왼쪽에는 2명의 큰 사람이 있기 때문에 2번만큼 오른쪽으로 큰 사람이 나올 때 까지 swap을 해주면된다.모든 사람에 대해서 swap을 1번 부터 4번까지 위처럼 해주게 되면 4 2 1 3과 같은 한 줄이 나오게 된다. 코드#include #include #include #include #include #include #include #include #include #include using namespace std;using ll = long long;#define endl "\n"int main()..
https://www.acmicpc.net/problem/20006해설구현 문제이다.조건 그대로 구현하면되는데 2번 조건에 대해서 이차원 배열을 통해서 해당 i번째 방의 정원이 다 찼는지 확인할 수 있도록 하고 입장 가능한 방이 여러개라면 먼저 생성된 방을 탐색할 수 있도록 해주었다.이차원 배열을 for문으로 순서대로 돌면 방정원이 다 찼는지 확인할 수 있고 먼저 생성된 방부터 입장이 가능하다.코드를 보고 이해를 하도록 하자. 코드#include #include #include #include #include #include #include #include #include #include using namespace std;using ll = long long;#define endl "\n"int mai..
https://www.acmicpc.net/problem/1913 해설n은 홀수 이기때문에 시작행은 n / 2, 시작 열 : n / 2에서 부터 1을 넣고 방향을 변경해가며 그대로 배열에 값을 채워 넣으면 되는 문제이다.즉 가운데부터 순서대로 값을 채우는 것이다.본인은 시작행, 시작열을 기준으로 level이라는 개념을 두어 범위를 벗어나거나 시작행과 시작열로 부터 level을 벗어난 경우 방향을 변경해 가며 2차원 배열의 값을 채워 나갔다. 코드#include #include #include #include #include #include #include #include #include #include using namespace std;using ll = long long;#define endl "\n..
https://www.acmicpc.net/problem/20546 해설준현이는 있는 돈 그래도 주식을 살 수 있는 만큼 사고 오르길 기도하면되고, 성민이의 경우 3일 연속 상승하면 보유한 주식을 팔고 3일 연속 하락한다면 매수할 수 있는 만큼 주식을 매수하면되는 구현문제이다.준현이는 비교적 간단하게 구현할 수 있는데 성민이의 경우 방법을 다양하게 구현할 수 있다. 코드#include #include #include #include #include #include #include #include #include #include using namespace std;using ll = long long;#define endl "\n"int main(){ ios_base::sync_with_stdio(fals..
https://www.acmicpc.net/problem/2346해설원형 큐 문제이다. 큐로 풀기에는 매우 까다롭고 덱큐를 사용해서 원형큐를 흉내 내어 풀어야한다.종이에 적힌 수가 양수인 경우와 음수인 경우를 나누어서 생각해야한다.양수인 경우 dq의 front를 dq의 back에 넣어주고 음수인 경우 dq의 back을 front에 넣어주면된다. 코드#include #include #include #include #include #include #include #include #include #include using namespace std;using ll = long long;#define endl "\n"int main(){ ios_base::sync_with_stdio(false); cin.tie(..
https://www.acmicpc.net/problem/2493 해설이전 오큰수 문제와 굉장히 비슷한 문제이다. 탑이 수신가능한 탑 번호를 매겨야하는데, 자신보다 왼쪽에 있으면서 큰 탑의 번호를 넣어주어야한다.계산의 편의성을 위해서 입력 받은 벡터를 뒤집고 계산한뒤 나중에 다시 뒤집는다.그럼 이제 자신보다 크면서 오른쪽에 있는 탑의 번호를 찾으면 되기 때문에 마찬가지로 스택을 사용해서 풀어준다. 코드#include #include #include #include #include #include #include #include #include #include using namespace std;using ll = long long;#define endl "\n"int main(){ ios_base::s..
https://www.acmicpc.net/problem/17298해설문제 그대로 오른쪽에서 있으면서 자신보다 큰 수를 찾아서 출력하면되는 문제이다.스택을 사용해야한다. 현재 스택이 비어있다면 그대로 넣고 그게 아닌 경우 현재 스택의 top보다 작다면 그대로 스택에 넣고 그렇지 않다면 스택에서 빼는 작업을 해야한다.오른쪽에 있는 수만 비교하면 되기 때문이다. 말로는 어려우니 코드를 보면서 이해를 하도록 하자. 코드#include #include #include #include #include #include #include #include #include #include using namespace std;using ll = long long;#define endl "\n"int main(){ ios_b..