CodeSignal

Circle of Numbers

Doromi 2024. 2. 5. 22:13
728x90
반응형

원형으로 배치된 정수들 중에서, 주어진 firstNumber와 반대편에 위치한 숫자를 찾는 것입니다. 원의 둘레에 따라 숫자들이 배치되어 있다고 가정하며, 이때 firstNumber의 반대편에 위치한 숫자를 찾아 반환합니다.

예를 들어, n = 10이고 firstNumber = 2라면, 원의 둘레에 0부터 9까지의 숫자가 순서대로 배치되어 있다고 생각할 수 있습니다. 여기서 firstNumber가 2이므로, 반대편에 위치한 숫자는 7이 됩니다.

int solution(int n, int firstNumber) {
    // 반대편에 위치한 숫자는 (firstNumber + n / 2) % n 입니다.
    int oppositeNumber = (firstNumber + n / 2) % n;
    return oppositeNumber;
}
이때, firstNumber가 2라면 반대편에 위치한 숫자는 2에서부터 정확히 반쪽만큼 떨어진 위치에 있으므로 7이 됩니다. 따라서 (2 + 10 / 2) % 10을 계산하면 7이 됩니다.

만약 firstNumber가 0이었다면, 반대편에 위치한 숫자는 정확히 원의 중심에 위치하게 됩니다. 따라서 (0 + 10 / 2) % 10을 계산하면 5가 됩니다.

이것은 원의 중심에서 얼마나 떨어져 있는지를 나타내는 개념이며, 원의 중심으로부터 반대편에 위치한 숫자를 찾기 위해 (firstNumber + n / 2) % n을 사용한 것입니다.
728x90
반응형