티스토리 뷰
문제를 풀다가 가끔은 문법을 몰라서 고생하는 경우가 많다
이 문제는 그냥 시물레이션을 돌리면 된다
대신 다 돌지말고 %size해서 필요한 만큼만 돈다
vector의 이터레이터를 사용하면 쉽게 풀린다
이 문제 풀면서 알아두면 좋은건 vector->erase를 했을 때
지워지는 것의 다음 주소를 반환하는 걸 알고있으면 편하다
소스코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <iostream> #include <vector> using namespace std; #define ll long long int n; int main() { scanf(" %d", &n); vector<int> a(n); for (int i = 0; i < n; i++) a[i] = i + 1; auto it = a.begin(); for (int i = 1; i < n; i++) { ll num = ((ll)i*i*i - 1) % a.size(); for (int j = 0; j < num; j++) { it++; if (it == a.end()) it = a.begin(); } it = a.erase(it); if (it == a.end()) it = a.begin(); } printf("%d\n", a[0]); } | cs |
'알고리즘 > BOJ' 카테고리의 다른 글
[백준] 5670 휴대폰 자판 (0) | 2018.07.18 |
---|---|
[백준] 12887 경로 게임 (0) | 2018.07.18 |
[백준] 12867 N차원 여행 (0) | 2018.07.13 |
[백준] 15386 Birokracija (3) | 2018.07.12 |
[백준] 10767 Palindromic Paths (0) | 2018.07.11 |
댓글