[C++] 백준 1592 : 영식이와 친구들
#include <iostream>
int N, M, L; // 자리 수, 종료 조건, L번째
int arr[51] = {0};
int cnt = 0, idx = 1; // 1번 학생부터 시작
int main(int argc, char** argv){
scanf("%d %d %d", &N, &M, &L);
while(arr[idx] != M){
cnt++; // 공 던지는 횟수 세기
if(arr[idx] % 2 != 0){ // 홀수인 경우 시계 방향
if(idx + L > N){ // 범위 초과
idx = (idx + L) - N;
} else {
idx = idx + L;
}
} else { // 짝수인 경우 시계 반대 방향
if(idx - L < 1){ // 범위 초과
idx = N + (idx - L);
} else {
idx = idx - L;
}
}
arr[idx]++; // 공 받은 횟수 세기
}
printf("%d", cnt - 1); // 첫번째 시작은 공 안 던짐
return 0;
}
시뮬레이션 연습용 문제. 링크드리스트를 사용해야할까 고민했지만 단순하게 그냥 배열의 index를 사용해서 풀었다.
Author And Source
이 문제에 관하여([C++] 백준 1592 : 영식이와 친구들), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@lamknh/C-백준-1592-영식이와-친구들저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)