백준 22951번 송이의 카드 게임

김두현·2023년 5월 16일
1

백준

목록 보기
117/133
post-thumbnail

🔒[문제 url]

https://www.acmicpc.net/problem/22951


🪄전체 코드

#include <iostream>

using namespace std;
#define IAMFAST ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);

int n,k;
int card[1001];
bool visited[1001];

void INPUT()
{
    IAMFAST
    cin >> n >> k;
    for(int i = 0; i < n*k; i++) cin >> card[i];
}

void SOLVE()
{
    int cnt = 0;//제거한 카드 수

    int idx = 0;//선택된 카드
    while(cnt != n*k-1)//한 장만 남을 때까지
    {
        //오른쪽으로 이동할 횟수
        int move = card[idx];
        //선택된 카드+1
        cnt++;
        //방문 표시
        visited[idx] = true;

        for(int i = 1; i <= move; i++)
            //이미 제거한 카드라면 고려하지 않음 -> move+1
            if(visited[(idx+i)%(n*k)]) move++;
        //선택할 카드 갱신
        idx = (idx+move)%(n*k);
    }
    cout << (idx)/k + 1 << " " << card[idx];
}

int main()
{
    INPUT();
    SOLVE();
}

🥇문제 후기

GOLD5 미만 난이도는 알고리즘 및 풀이 설명을 주석으로 대체합니다.
주석을 참고해주세요.


💕오류 지적 및 피드백은 언제든 환영입니다. 복제시 출처 남겨주세요!💕
💕좋아요와 댓글은 큰 힘이 됩니다.💕
profile
I AM WHO I AM

0개의 댓글