나 개발자 진짜 되냐?

코딩테스트 입문 - 캐릭터의 좌표 ( clamp ) 본문

프로그래머스를 풀어보아요!/C++

코딩테스트 입문 - 캐릭터의 좌표 ( clamp )

Snow Rabbit 2026. 5. 16. 14:28

 

 

지난 12월부터 쭉 코테만 공부한거같은데..

뭔가...

확 실력이 오른 기분이 아니다.

맨날 몰라서 인지씨를 찾아가기만 하고..

머리는 멍하고..

 

이게 방향이 맞는걸까..

걱정이 너무 많다.

걱정이 많다...

...많아..

 

공백만 생기는게 아닌가..

걱정이 많다..


 

RPG게임하니까 나도 하나 만들어야 할 텐데..

심란심란..

 

하지만 일단 문제부터.. 풀어본다.

 

 

이 문제에서 중요한 건

가운데서 시작하기 때문에

최대 칸이 정해져 있다는 것.

 

그래서 9면 왼쪽 최대 4 오른쪽 최대 4

 

소수점이 버려진다.

 

이때는 int를 사용하면 된다.

그럼 소수점이 자동으로 버려진다!!!!

 

다음으로 중요한 것은

음수 양수 표현이다.

int a = 2;

일 때

음수로는 표현을 어떻게 하나.. 했었다.

 

근데 -a라고 하면 자연스레 -2이 된다고 한다.

왕 신기

 

그래서!

 

이렇게 풀었다.

 

답은 잘 나왔다.

 

인지 씨에게 최적의 식을 물었는데..

이거 보다 더 좋은 식이 있다고 했다.

 

이렇게 if문으로 조건을 하나하나 따지지 말고

최댓값과 최솟값을 정해두고 그 밖으로 못 나가게 해 보자고 했다.

 

 

사기적인 내장함수

clamp

최소와 최대를 넘어가지 못하게 꽉 잡아주는 함수!!

#include <algorithm>을 추가해야 한다.

 

사용법

clamp(현재값, 최솟값, 최댓값);

 

그리고 얘는 값을 넣어줘야 한다.

answer [0] = clamp(현재값, 최솟값, 최댓값);

 

그래서 이렇게 풀 때는 먼저

최댓값 최솟값을 먼저 변수로 두고

x, y도 따로 담는는다.

 

 

근데 answer을 이렇게 담으면 안 된다.

답에 바로 넣어주면

x가 맨 끝에 갔다가 돌아가는 그 값이 꼬이게 된다고 한다.

 

그래서! 따로 해줘야 한다고 한다..ㅎㅎ

 

 

이렇게..!!

 


 



 

생각할 게 많아서

어려웠는데..

6점이라니.. 그거보단 어려운거 같았는데..

아닌가..

기분이 썩 좋지않아서 기분탓일지도..

 

clamp으로

최솟값 최댓값을 정해주고

그 안에서 움직일 수 있도록 해주는 것

참 좋은 알고리즘 하나 배웠다.

 

잘 써먹고 싶다.