-
프로그래머스 문제 풀이 조이스틱 (수정 중)24년 11월 이전/레거시-프로그래머스-코딩 테스트 고득점 kit 2019. 12. 15. 15:24반응형
문제 URL 조이스틱
Contents
- 문제 지문 파악하기
- 구르미의 알고리즘 풀이
문제 지문 파악하기
구르미의 알고리즘 풀이
<수정 중>
다음을 코드로 나타내면 다음과 같습니다. 먼저 PYTHON 코드입니다.
PYTHON 코드
def solution(name): LUT = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,12,11,10,9,8,7,6,5,4,3,2,1] answer = 0 for c in name: answer += LUT[ord(c) - ord('A')] n = len(name) left_or_right = n-1 for i in range(n): _next = i + 1 while _next < n and name[_next] == 'A': _next += 1 left_or_right = min(left_or_right, i + n - _next + min(i, n-_next)) answer += left_or_right return answer
다음은 CPP 코드입니다. 알고리즘은 동일합니다.
#include <string> #include <vector> #include <algorithm> using namespace std; int solution(string name) { int LUT[] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,12,11,10,9,8,7,6,5,4,3,2,1 }; int answer = 0; for (auto ch : name) answer += LUT[ch - 'A']; int len = name.length(); int left_right = len - 1; for (int i = 0; i < len; ++i) { int next_i = i + 1; while (next_i < len && name[next_i] == 'A') next_i++; left_right = min(left_right, i + len - next_i + min(i, len - next_i)); } answer += left_right; return answer; }
728x90'레거시 > 레거시-프로그래머스-코딩 테스트 고득점 kit' 카테고리의 다른 글
프로그래머스 문제 풀이 단속카메라 (4) 2019.12.19 프로그래머스 문제 풀이 구명보트 (0) 2019.12.17 프로그래머스 문제 풀이 카펫 (0) 2019.12.12 프로그래머스 문제 풀이 숫자 야구 (0) 2019.12.11 프로그래머스 문제 풀이 소수 찾기 (0) 2019.12.10