반응형
문제)
상황 설명 : 무한한 수직선 위에 위치 0에서 시작. 목표 지점은 target 위치.
특정 횟수 numMoves만큼 이동할 수 있다.
각 이동에서 왼쪽이나 오른쪽으로 갈 수 있다.
i번째 이동(i == 1부터 i == numMoves까지) 중에 선택한 방향으로 i 단계를 수행.
목표 : target 위치에 도달하기 위해 필요한 최소 이동 횟수 numMoves를 반환.
문제 난이도 : 중
소요시간 및 풀이)
무슨 알고리즘을 썻다기 보다 그냥 수학적 접근으로 풀었다.
중 치고는 쉬운 문제.
소요 시간 : 14분
정답 코드
class Solution
{
public:
int reachNumber(int target)
{
target = abs(target);
int sum = 0;
int cnt = 0;
while (sum < target || (sum - target) % 2 != 0) {
cnt++;
sum += cnt;
}
return cnt;
}
};
반응형
'코딩 테스트 연습' 카테고리의 다른 글
LeetCode : 735. Asteroid Collision (0) | 2024.05.31 |
---|---|
LeetCode : 713. Subarray Product Less Than K (0) | 2024.05.30 |
LeetCode : 692. Top K Frequent Words (0) | 2024.05.30 |
LeetCode : 575. Distribute Candies (0) | 2024.05.27 |
LeetCode : 630. Course Schedule III (0) | 2024.05.27 |