https://school.programmers.co.kr/learn/courses/30/lessons/42860
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๋ด ํ์ด
#include <string>
#include <vector>
#include <iostream>
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)
{
// 1. ๋ฌธ์ ์์
// A๋ถํฐ ์ ๊ทผ
if(name[i]-'A' <='Z'- name[i] + 1)
answer += name[i]-'A';
// Z๋ถํฐ ์ ๊ทผ
else
answer += 'Z' - name[i] + 1;
// ํ์ฌ ๊ฐ ์ดํ์ 'A'์์น๋ฅผ ์ฐพ๋๋ค.
int next = i + 1;
while(next < n && name[next] == 'A')
++next;
// ์ต์ ์ด๋ ๊ฐ OR ์ญ๋ฐฉํฅ์ผ๋ก ์ด๋ ๊ฐ ์ค ๋ ์์ ๊ฐ์ ์ฐพ๋๋ค.
turn = min(turn, i + n - next + min(i, n-next));
}
answer += turn;
return answer;
}
'๐ฅ๏ธ Study Note > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค]level.1 - ํธ๋ํฐ ๋ฒํธ ๊ฐ๋ฆฌ๊ธฐ(C++) (0) | 2023.06.11 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค]level.2 - ์ฐ์๋ ๋ถ๋ถ ์์ด์ ํฉ(C++) (0) | 2023.06.10 |
[ํ๋ก๊ทธ๋๋จธ์ค] level.2 - ๋กค์ผ์ดํฌ ์๋ฅด๊ธฐ(C++) (0) | 2023.06.08 |
[ํ๋ก๊ทธ๋๋จธ์ค] level.2 - ๋ฏธ๋ก ํ์ถ(C++) (0) | 2023.06.07 |
[ํ๋ก๊ทธ๋๋จธ์ค] level.3 - ๋จ์ ์นด๋ฉ๋ผ(C++) (0) | 2023.06.06 |