[プログラマー/C+]JOYSTIC-Greedy
1295 ワード
質問する
https://programmers.co.kr/learn/courses/30/lessons/42860
に答える
前の文字または次の文字/次のカーソルまたは最後のカーソル
何が一番いい年なのか、毎回比較する典型的なgreedy問題!
(アクセス自体の扱い方が全くわからなかったので、他の人のコードを参考にしましたが、JOY STICが途中で方向を変えることを考えていなかったので大変でした)
反例)ABABAAAAAB
コード#コード#
#include <string>
using namespace std;
int solution(string name) {
int answer = 0;
int n = name.length();
int turn = n-1;
for(int i=0; i<n; i++) {
if(name[i] - 'A' < 14) {
answer += name[i] - 'A';
}
else {
answer += 'Z' - name[i] + 1;
}
int index = i+1;
while(index < n && name[index] == 'A') {
index++;
}
int a = i;
int b = n - index;
turn = min(turn, min(2*a+b, a+2*b));
}
answer += turn;
return answer;
}
Reference
この問題について([プログラマー/C+]JOYSTIC-Greedy), 我々は、より多くの情報をここで見つけました https://velog.io/@rlagksql219/프로그래머스C-조이스틱-Greedy-nu1ltwjhテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol