이 영역을 누르면 첫 페이지로 이동
쿄코코 블로그의 첫 페이지로 이동

쿄코코

페이지 맨 위로 올라가기

쿄코코

얼레벌레 생활🤯

백준 1158(요세푸스 문제) - Python(파이썬),Java(자바) - 자료구조(큐)

  • 2022.06.07 20:17
  • [백준] Python,Java로 풀기📖/자료구조
    반응형
     

    1158번: 요세푸스 문제

    첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)

    www.acmicpc.net

    예제 설명


    이걸 좀 해석하면


    ① 제일 앞에 있는 값을 pop하고 뒤에다가 append한다

    ② 그 과정을 두번 하고나서 

    ③ 세번째에는 pop하면서 나오는 값을 따로 큐에 저장한다.

    이렇게 세 개의 과정을 한번 할때마다 하고서 큐에 사람 수만큼 채워지면 그만둔다.

     

    풀이과정

    ① 사람 수만큼 1번부터 사람수까지 번호를 부여한다.
    ② 제일 앞에 있는 값을 pop하고 다시 append에서 뒤로 붙이는 과정을 두번을 하므로 range(2)만큼 for문을 실행한다. 
    ③ 세번째 pop하는 것은 visted 리스트에 붙인다.
    ④ ②,③번의 과정을 모두 큐에 저장할 때까지 반복한다.

    💻 Python(파이썬)

    import sys
    from collections import deque
    #사람수, 제거되는 사람 번호
    n,k = map(int,sys.stdin.readline().split())
    #사람 리스트 - 1번부터 n번까지
    q = deque(range(1,n+1))
    #나올 사람 리스트
    visted =[]
    
    while q:
        for i in range(k-1):
        	#큐에서 Pop하고 뒤에 다시 붙이기
            q.append(q.popleft())
        #세번재 pop하는건 따로 리스트에 저장
        visted.append(q.popleft())
    
    print("<",", ".join(str(i) for i in visted),'>',sep="")

    💻 Java(자바)

    import java.util.*;
    import java.io.*;
    
    public class Main {
        public static void main(String[] args) throws IOException{
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            StringTokenizer st =new StringTokenizer(br.readLine()," ");
            StringBuilder sb = new StringBuilder();
            int n = Integer.parseInt(st.nextToken());
            int k = Integer.parseInt(st.nextToken());
            Queue<Integer> q = new LinkedList<>();
            for(int i=0;i<n;i++){
                q.offer(i+1);
            }
            sb.append("<");
            while(!q.isEmpty()){
                for(int i=0;i<k-1;i++){
                    q.offer(q.poll());
                }
                if(q.size()!=1){
                    sb.append(q.poll()).append(", ");
                }else{
                    sb.append(q.poll());
                }
            }
            sb.append(">");
            System.out.println(sb);
        }
    }

     

    반응형

    '[백준] Python,Java로 풀기📖 > 자료구조' 카테고리의 다른 글

    백준 1966(프린터 큐) - Python(파이썬) - 큐,자료구조  (0) 2022.07.03
    백준 5430(AC) -Python(파이썬) - 자료구조  (0) 2022.06.08
    백준 10828(스택) - Python(파이썬),Java(자바) -자료구조,스택  (0) 2022.06.07
    백준 1927(최소 힙) - Python(파이썬) - 자료구조  (0) 2022.06.01
    백준 11279(최대 힙) - Python(파이썬) - 자료구조  (0) 2022.05.31

    댓글

    이 글 공유하기

    • 구독하기

      구독하기

    • 카카오톡

      카카오톡

    • 라인

      라인

    • 트위터

      트위터

    • Facebook

      Facebook

    • 카카오스토리

      카카오스토리

    • 밴드

      밴드

    • 네이버 블로그

      네이버 블로그

    • Pocket

      Pocket

    • Evernote

      Evernote

    다른 글

    • 백준 5430(AC) -Python(파이썬) - 자료구조

      백준 5430(AC) -Python(파이썬) - 자료구조

      2022.06.08
    • 백준 10828(스택) - Python(파이썬),Java(자바) -자료구조,스택

      백준 10828(스택) - Python(파이썬),Java(자바) -자료구조,스택

      2022.06.07
    • 백준 1927(최소 힙) - Python(파이썬) - 자료구조

      백준 1927(최소 힙) - Python(파이썬) - 자료구조

      2022.06.01
    • 백준 11279(최대 힙) - Python(파이썬) - 자료구조

      백준 11279(최대 힙) - Python(파이썬) - 자료구조

      2022.05.31
    다른 글 더 둘러보기

    정보

    쿄코코 블로그의 첫 페이지로 이동

    쿄코코

    • 쿄코코의 첫 페이지로 이동

    검색

    메뉴

    • 홈

    카테고리

    • 분류 전체보기 (168)
      • Python (24)
        • 😈 99클럽 코테 스터디 4기 TIL (23)
        • 궁금한거 정리 (1)
      • SQL (16)
        • HackerRank (15)
      • [백준] Python,Java로 풀기📖 (71)
        • 정렬(Sorting) (6)
        • 그리디 (5)
        • 문자열 (7)
        • 수학 (3)
        • DFS&BFS (10)
        • 구현 (4)
        • 다이나믹 (17)
        • 이분탐색 (1)
        • 자료구조 (10)
        • 최단거리 (5)
        • 인덱스트리 (0)
      • [프로그래머스]Python,Java로 풀기 (6)
        • Level 1 (4)
        • Level 2 (2)
      • Study Platform📚 (25)
        • (운영체제) - 블로그 및 강의 참고 (0)
        • 김영한👨🏻‍🏫의 스프링 부트와 JPA 실무 완전 .. (5)
        • (알고리즘)- [이코테] 이것이 코딩테스트다 정리 (10)
        • 그림으로 배우는 Http&Network Basic (10)
      • 까먹을까봐 적는 것들 (4)
      • 테스트 보고 난 후..🤔 (0)
      • kt 에이블스쿨 (18)

    최근 글

    인기 글

    댓글

    공지사항

    아카이브

    태그

    • 오블완
    • 항해99
    • 백준
    • 티스토리챌린지
    • 코딩테스트준비
    • 프로그래머스
    • 99클럽
    • TiL

    나의 외부 링크

    정보

    쿄코코의 쿄코코

    쿄코코

    쿄코코

    블로그 구독하기

    • 구독하기
    • RSS 피드

    방문자

    • 전체 방문자
    • 오늘
    • 어제

    티스토리

    • 티스토리 홈
    • 이 블로그 관리하기
    • 글쓰기
    Powered by Tistory / Kakao. © 쿄코코. Designed by Fraccino.

    티스토리툴바