1. 문제
코딩테스트 연습 - 조이스틱
조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다
programmers.co.kr
2. 소스코드
- 2020/06/25 - [알고리즘/PS] - [ 백준-3663번 / BF / 그리디 ] 고득점 풀이
의 열화 버전. 백준에 비해 테스트 케이스가 매우 매우 매우 허술 하고, N의 크기도 매우 매우 작다.
- 테케가 허술하다 보니 별의별 코드가 AC된다. 믿지 말 것.
- 자세한 풀이는 위 링크를 참조하면 될 것 같다.
소스코드
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int solution(string str) {
int answer = 0;
int pos = 2e9;
int size = str.size();
for (int i = 0; i < size; i++)
answer += min(str[i] - 'A', 'Z' - str[i] + 1);
for (int i = 0, j; i < size; i++) {
for (j = i + 1; j < size && str[j] == 'A'; j++);
if (str[i] == 'A' && j == size + 1) break;
int left = i * 2 + size - j;
int right = i + (size - j) * 2;
int temp = min(right, left);
pos = min(temp, pos);
}
return answer + pos;
}
'알고리즘 > BOJ(백준)' 카테고리의 다른 글
[ BOJ / 투포인터 ] 차집합 (0) | 2020.07.09 |
---|---|
[ 프로그래머스 / String ] 문자열 압축 소스코드 (0) | 2020.06.26 |
[ 백준-3663번 / BF / 그리디 ] 고득점 풀이 (0) | 2020.06.25 |
[ 프로그래머스 / Stack ] 쇠막대기 (0) | 2020.06.24 |
[ 백준-2493번 / Stack ] 탑 (풀이) (0) | 2020.06.24 |