[코드트리] 원형 수열에서의 인원 제거

2024. 9. 20. 20:23·PS

 

 


 

문제

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

 

개념

큐

 

 

실행 결과

 

 

 

 

 

구현 코드(c++)

#include <iostream>
#include <queue>
using namespace std;

int main() {
  int n, k;
  cin >> n >> k;

  queue<int> q;

  for (int i = 1; i <= n; i++) {
    q.push(i);
  }

  while (q.size() != 1) {
    // 앞 사람들을 뒤로 보내기
    for (int i = 0; i < k - 1; i++) {
      q.push(q.front());
      q.pop();
    }

    // k 번째 사람 출력 후 제거 
    cout << q.front() << " ";
    q.pop();
  }

  // 남은 1명 출력
  cout << q.front();

  return 0;
}

 

 

 

 

코드 설명

원형 수열은 뒤에서 앞으로 다시 돌아가는 구조이므로

선입선출의 구조를 가진 자료구조 queue를 이용해 구현한다.

 

먼저 k번째에 위치한 사람 한 명만 남을때까지 앞에서부터 계속 push하면서 빼낸다.

한 명만 출력하고 다시 이 과정을 반복한다.

계속 제거하다보면 size가 1일 때 더 이상 제거가 불가능하므로 마지막 사람 출력 후 마무리.

 

 


 

 

저작자표시 (새창열림)

'PS' 카테고리의 다른 글

[백준] 5585번: 거스름돈  (0) 2024.09.24
[백준] 11407번: 동전 0  (0) 2024.09.24
[백준] 2579번: 계단 오르기  (0) 2024.09.20
[백준] 15649번: N과 M (1)  (0) 2024.09.18
[백준] 11399번: ATM  (0) 2024.09.17
'PS' 카테고리의 다른 글
  • [백준] 5585번: 거스름돈
  • [백준] 11407번: 동전 0
  • [백준] 2579번: 계단 오르기
  • [백준] 15649번: N과 M (1)
abyss-s
abyss-s
프론트엔드 개발합니다!
  • abyss-s
    abyss-s의 블로그입니다.
    abyss-s
  • 전체
    오늘
    어제
    • 분류 전체보기 (190)
      • Web (16)
        • JavaScript (6)
        • TypeScript (1)
        • React (5)
        • Vue (0)
        • Storybook (1)
        • Next.js (1)
      • Backend & Infra (8)
        • Database (3)
        • Node.js (2)
        • SpringBoot (1)
      • PS (71)
      • CS (30)
        • OS (13)
        • Structure & Algorithm (5)
        • Network (10)
        • 정보처리기사 (2)
      • Language (18)
        • OOP (1)
        • JAVA (13)
        • C++ (4)
      • Activities (14)
        • 멋쟁이 사자처럼 (2)
        • OSSCA (3)
        • LG U+ URECA (5)
        • Project (2)
      • AI (0)
      • Git & Github (5)
      • Notion (1)
      • IT (4)
      • Statistics (11)
      • Book (4)
      • Diary (1)
      • Game (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
    • 백준
    • 트위터
  • 공지사항

    • abyss-s의 티스토리에 오신 것을 환영합니다.
  • 인기 글

  • 태그

    C++
    BFS
    DP
    Java
    코드트리
    그리디
    자바기반응용프로그래밍
    JavaScript
    운영체제
    자바스크립트
    네트워크
    통계학
    BAEKJOON
    생활코딩
    Python
    github
    파이썬
    React
    OS
    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
abyss-s
[코드트리] 원형 수열에서의 인원 제거
상단으로

티스토리툴바