[프로그래머스/C++]Lv.0 - 공 던지기

YH J·2023년 4월 19일
0

프로그래머스

목록 보기
51/168

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/120843

내 풀이

공의 이동거리를 먼저 계산 후 numbers의 크기로 나눠서 나머지를 구한다. 딱 떨어지면 마지막사람이다.

내 코드

#include <string>
#include <vector>

using namespace std;

int solution(vector<int> numbers, int k) {
    if(k == 1)
        return 1;
    else
    {
        if((k*2 - 1) % numbers.size() != 0)
            return (k*2 - 1) % numbers.size();
        else
            return numbers.size();
    }
}

다른 사람의 풀이

#include <vector>

using namespace std;

int solution(vector<int> numbers, int k) {
    int answer = 0, size = numbers.size();
    while(--k) answer = (answer + 2) % size;
    return numbers[answer];
}

다른 사람의 풀이 해석

k가 0이 될 때 까지 +2 해가면서 size의 나머지로 계산해준다.

profile
게임 개발자 지망생

0개의 댓글