Partially Committed
[2020 카카오 인턴십] 키패드 누르기 본문
728x90
반응형
SMALL
https://programmers.co.kr/learn/courses/30/lessons/67256
#include <string>
#include <vector>
using namespace std;
string solution(vector<int> numbers, string hand) {
string answer = "";
string temp = "";
int latest_left = 10;
int latest_right = 12;
int left_dist = 0;
int right_dist = 0;
for (auto& c : numbers)
{
if (c == 0) c = 11;
if (c % 3 == 0)
{
temp.push_back('R');
latest_right = c;
}
else if (c % 3 == 1)
{
temp.push_back('L');
latest_left = c;
}
else
{
left_dist = abs((latest_left - c) / 3) + abs((latest_left - c) % 3);
right_dist = abs((latest_right - c) / 3) + abs((latest_right - c) % 3);
if (left_dist < right_dist)
{
temp.push_back('L');
latest_left = c;
}
else if (left_dist > right_dist)
{
temp.push_back('R');
latest_right = c;
}
else if(hand == "left")
{
temp.push_back('L');
latest_left = c;
}
else
{
temp.push_back('R');
latest_right = c;
}
}
}
answer = temp;
return answer;
}
거리를 계산할 때, 각각의 키패드를 X,Y 좌표로 저장해놓고
맨해튼 거리 : abs(x1-x2) + abs(y1 - y2) 를 이용해도 좋겠다.
728x90
반응형
LIST
'🔥 Algorithm || 문제풀이 > PS' 카테고리의 다른 글
[월간 코드 챌린지 시즌3] 없는 숫자 더하기 (0) | 2022.07.01 |
---|---|
[프로그래머스] 크레인 인형뽑기 게임 (0) | 2022.07.01 |
[2021 카카오 채용연계형 인턴십] 숫자 문자열과 영단어 (0) | 2022.06.28 |
[2021 KAKAO BLIND RECRUITMENT] 신규 아이디 추천 (0) | 2022.06.28 |
[2022 KAKAO BLIND RECRUITMENT] 신고결과받기 (0) | 2022.06.26 |
Comments