[C/Python] 백준 11866번 - 요세푸스 문제 0

매미·2024년 7월 4일

백준

목록 보기
9/13

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

문제

발상

파이썬에서는 걍 pop 쓰고 C언어에서는 덮어씌우자

Clang

#include <stdio.h>

int main() {
    int n,k;
    scanf("%d %d", &n, &k);
    int arr[n];
    int karr[n];
    int num = 0;
    int arrlen = n;
    
    for (int i=0; i<n; i++)
        arr[i]=i+1;
        
    for (int i=0; i<n; i++) {
        num += k-1;
        if (num >= arrlen)
            num %= arrlen;
        karr[i]=arr[num];
        for (int j=num; j<arrlen-1; j++)
            arr[j]=arr[j+1];
        arrlen--;
    }
    printf("<");
    for (int i=0; i<n-1; i++)
        printf("%d, ", karr[i]);
    printf("%d>", karr[n-1]);
    return 0;
}

Python

n,k = map(int, input().split())
nlist = [i for i in range(1,n+1)]
klist = []
i = 0
for _ in range(n):
    i += k-1
    if i>=len(nlist):
        i %= len(nlist)
    klist.append(str(nlist.pop(i)))
print("<",", ".join(klist),">", sep='')

소감

일주일만에 푸는 백준 문제라 뇌정지 씨게 왔다

profile
Kwangwoon Univ. Computer Information and Engineering 24

0개의 댓글