Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- rigidbody.position
- 유니티
- 유니티 LTS
- 유니티 Rigidbody 이동
- bfs
- 백준 10844번 c++
- long int 의 차이
- UML Diagram 정리
- 코드
- 로블록스 script local script 차이
- 백준 2225번 c++
- 유니티 꿀팁
- TOPCIT 후기
- 백준 11726번 C++
- 풀이
- 백준 10799번 c++
- TOPCIT 문제 유형
- 백준 17299번 c++
- 플레이어 이동
- rigidbody.Moveposition
- 백준 2193번 c++
- 차이
- 프로그래머스 가장 큰 수 C++
- 1699번
- 프로그래머스 단체사진 찍기 C++
- c++
- 배열 stack overflow
- 2644번
- transform.position
- 백준
Archives
- Today
- Total
Kiki Devlog
[프로그래머스][Lv 1]카카오 인턴 키패드 누르기(2020 카카오 인턴십,pair 쓰기) 본문
728x90
오랜만에 코딩문제를 풀어야겠다 싶었다. 인턴한다고 너무 공부 안했다. Lv1이라해서 얕봤다가 은근 시간 오래걸렸다.
풀이법
숫자패드를 이차원 배열로 보고 손가락의 위치를 배열로 저장해서 다음번에 누를 숫자(이것도 이차원 배열로 표현)와의 거리(손가락과 숫자가 이차원 배열에서 떨어진 칸 수)를 계산.
#include <string>
#include <vector>
#include <cmath>
using namespace std;
string solution(vector<int> numbers, string hand) {
string answer = "";
pair<int,int> curLPos = make_pair(3,0);
pair<int,int> curRPos = make_pair(3,2);
for(auto num : numbers){
if (num == 0) num = 11; // 원래 자리에 있어야 할 숫자로 계산 편의를 위해 바꿈
if(num == 1 || num == 4 || num == 7 ){
answer += "L";
curLPos = make_pair((num-1)/3,0);
}
else if(num == 3 || num == 6 || num == 9 ){
answer += "R";
curRPos = make_pair((num-1)/3,2);
}
else{ //가운데 줄 누름
pair<int,int> numPos = make_pair((num-1)/3,(num-1)%3);
int LDiff = abs(curLPos.first-numPos.first) + abs(curLPos.second-numPos.second);
int RDiff = abs(curRPos.first-numPos.first) + abs(curRPos.second-numPos.second);
if(LDiff > RDiff){
answer += "R";
curRPos = make_pair((num-1)/3,1);
}
else if(LDiff < RDiff){
answer += "L";
curLPos = make_pair((num-1)/3,1);
}
else { // 양손과의 거리 같음
if(hand == "right"){
answer += "R";
curRPos = make_pair((num-1)/3,1);
}
else{
answer += "L";
curLPos = make_pair((num-1)/3,1);
}
}
}
}
return answer;
}
'Coding Test > 프로그래머스' 카테고리의 다른 글
[프로그래머스][Lv 1] 다트 게임 (2018 KAKAO BLIND RECRUITMENT) (0) | 2022.08.17 |
---|---|
[프로그래머스][Lv 1] 신규 아이디 추천(2021 KAKAO BLIND RECRUITMENT) (0) | 2022.08.15 |
[프로그래머스][Lv 2] 주식가격 (0) | 2022.06.10 |
[프로그래머스][Lv 2] 위장 (stl map, 포인터의 화살표 연산자) (0) | 2022.06.09 |
[프로그래머스][Lv 2] 단체사진 찍기 (dfs 길 되돌아가기) (0) | 2022.06.09 |
Comments