solved.ac

6151 단어 solved.acsolved.ac

부대 사지방에서 velog

하루에 한 문제씩 풀고, 코드 review를 하는 과정을 velog에 담기로 했다.

시작은 실버5이다. 일단 골드까지 올리는 것이 목표지만, 꾸준히 문제를 풀다보면 어느새 올라있지 않을까


👉 11866 요세푸스 문제

def Josephus(arr, visited, n, k):
    JosephusArr = []
    order = -1
    while sum(visited) != n:
        cnt = 0
        while cnt != k:
            order = (order + 1) % n
            if visited[order] == 0:
                cnt += 1
        visited[order] += 1
        JosephusArr.append(arr[order])
    return JosephusArr


n, k = map(int, input().split())
arr = []
visited = []
for i in range(n):
    arr.append(i+1)
    visited.append(0)
result = Josephus(arr, visited, n, k)
print('<', end='')
for i in range(n):
    if i == n - 1:
        print(f'{result[i]}>')
    else:
        print(f'{result[i]}, ', end='')

단순한 순열 문제이다. 원순열이지만, 1차원 배열에서 index를 mod하는 방식으로 풀었다.


백준 문제 외에 틈틈히 복습하는 자료구조 및 알고리즘에 대해서도 올리려고 한다.
사실 어제 주말동안 힙, 그래프에 대해 간단히 복습했는데 올리기 귀찮다.
벌써 귀찮다니..큰일났네

좋은 웹페이지 즐겨찾기