meong_j
기록하는 습관.
meong_j
전체 방문자
오늘
어제
  • 분류 전체보기 (176)
    • 개인 공부 정리 (0)
    • 서버 운영 (37)
      • Linux (36)
    • Frontend (11)
      • Vue.js (10)
    • Backend (70)
      • Java (4)
      • Python (22)
      • Django (38)
      • Spring (6)
    • Database (5)
      • Oracle (4)
      • MySQL (1)
      • MariaDB (0)
    • Android (14)
      • Kotlin (6)
    • 배포 (9)
      • Docker (8)
      • AWS (1)
    • IT_study (29)
      • Coding test (17)
      • 알고리즘 (5)
      • 스터디 (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • github

인기 글

반응형

태그

  • 테크커리어
  • Proxy
  • django
  • dockersecret
  • 중첩라우트
  • 배포인프라
  • 코틀린자료형
  • dp #알고리즘
  • DHCP
  • SASS Variables
  • 리눅스인증
  • 리눅스방화벽
  • 이차원배열정렬
  • 개발자도서
  • 안드로이드adaptor
  • router-link
  • Kotlin
  • gabagecollecter
  • docker
  • cpu사용률

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.
meong_j

기록하는 습관.

IT_study/Coding test

[코딩테스트 / c++] 공주 구하기 (조세퍼스) 문제

2022. 1. 16. 22:43
728x90
반응형

문제

 

풀이

#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;



int main(){
	
	int n, k, pos=0, bp=0, cnt=0, i;
	scanf("%d %d", &n, &k);
	vector<int> prince(n+1);//0으로 초기화 
	
	while(1){
		pos++;
		if(pos>n) pos=1;//pos=9일 경우 1로 pos초기화 
		
		if(prince[pos]==0){
			cnt++;
			if(cnt==k){
				prince[pos]=1;//out
				cnt=0;
				bp++;//n-1명 out명수 체크 
			}
		}
		if(bp==n-1) break;
	}
	
	for(i=1; i<=n; i++){
		if(prince[i]==0){
			printf("%d\n", i);//살아남은 왕자번호출력 
			break;
		}
	}
	return 0;
}

vector배열에 왕자 수만큼 0으로 초기화하고, k만큼 카운트됬을 경우 해당 postion에 있는 왕자 배열을 1로 바꾸어 out된 왕자를 체크해간다. postion이 n보다 클 경우 존재하면 안되기 때문에 1로 초기화한다.

아웃한 왕자의 수가 n-1일 경우 1명만 남게 되니 break하고, 살아남은 왕자의 0인 postion을 출력하면 된다.

 

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'IT_study > Coding test' 카테고리의 다른 글

[코딩테스트 / c++] 멀티태스킹(카카오 먹방 문제 변형)  (0) 2022.01.18
[코딩테스트 / c++] 백준 1158 요세푸스 문제  (0) 2022.01.18
[코딩테스트 / c++] Inversion Sequence (삽입 정렬 풀이)  (0) 2022.01.02
[코딩테스트 / c++] Least Recently Used(2018 카카오 캐시 문제 변형)  (0) 2022.01.02
[Coding test Basic with c++] N!의 표현법  (0) 2021.12.27
    'IT_study/Coding test' 카테고리의 다른 글
    • [코딩테스트 / c++] 멀티태스킹(카카오 먹방 문제 변형)
    • [코딩테스트 / c++] 백준 1158 요세푸스 문제
    • [코딩테스트 / c++] Inversion Sequence (삽입 정렬 풀이)
    • [코딩테스트 / c++] Least Recently Used(2018 카카오 캐시 문제 변형)
    meong_j
    meong_j
    #it #개발일기 #개발공부 #개발자 #백앤드 #생각정리 #시간은 실력에 비례한다 #뭐든지 꾸준히 열심히 #오늘의 내가 내일의 나를 만든다

    티스토리툴바