설명이 난잡해서 이해를 못했음..
처음에 i번째 학생이라고 썼다가 규칙 설명할 때 i번 카드 (카드임 번호표 아님) 주는 것도 그렇고
그냥 Aj % i랑 Aj+1 % i랑 비교한다고 하지 그걸 굳이 j번 학생이 j + 1번 학생에게 카드를 주고 비교를 한다고 하는 것도 그렇고
M개의 카드 학생에게 주고 넘기고 버리고 번호표 카드 번호표 카드 i번째 학생의 카드 (ㅈㅅ)
암튼 헷갈리고 내가 생각한대로 안 돌아가서 패스했음
나중에 하나하나 적어보니 어떻게 돌아가는지 알겠다
아 게다가 중간에 연산 잘못한 것도 있어서 더 그런듯 3 % 1을 몫으로 생각해서 3과 2인줄 알았다ㅋㅋ
하지만 인덱스와 번호표와 카드 번호 넘 헷갈려
로직은 이렇게 돌아간다
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <functional>
#include <string>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <cmath>
#include <cstring>
#include <bitset>
#define xx first
#define yy second
#define all(x) (x).begin(), (x).end()
#define MOD 1000000009
using namespace std;
using i64 = long long int;
using ii = pair<int, int>;
using ii64 = pair<i64, i64>;
using iii = tuple<int, int, int>;
int main()
{
int n, m;
cin >> n >> m;
vector<int> v(n + 5);
for (int i = 1; i <= n; i++)
cin >> v[i];
for (int i = 1; i <= m; i++)
{
for (int j = 1; j < n; j++)
{
if (v[j] % i > v[j + 1] % i)
swap(v[j], v[j + 1]);
}
}
for (int i = 1; i <= n; i++)
cout << v[i] << endl;
return 0;
}
'백준' 카테고리의 다른 글
5622 다이얼 (0) | 2020.09.28 |
---|---|
1166 선물 (0) | 2020.09.26 |
15993 1, 2, 3 더하기 8 (0) | 2020.09.26 |
14442 벽 부수고 이동하기 2 (0) | 2020.09.25 |
15739 매직스퀘어 (0) | 2020.09.25 |