[프로그래머스] Lev.2 조이스틱
2020, Aug 31
문제 요약
조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA
나의코드
function solution(name) {
let firstChar = 65;
let lastChar = 90;
let answer = 0,a_count = 0; //A갯수 체크
let up= 0,down= 0,left= 0,right = 0 ,move = 0;
for(let i= 0; i < name.length; i++) {
//up down 횟수체크
up = name.charCodeAt(i) - firstChar;
down = (lastChar - name.charCodeAt(i)) +1;
if(up == 0 ) {
a_count++;
}else{
if(up > down) {
answer += down ;
}else{
answer += up
}
//move!! 좌우 확인
if(i == a_count){
left = a_count;
right = 1;
} else {
left = 1+a_count;
right = i-a_count;
}
if(left <= right) {
answer += left;
} else {
answer += right;
}
a_count = 0;
}
}
//예외처리1
if(left > right && name.charAt(name.length-1)== "A"){
move = move+1;
}
//예외처리2
if(left < right && a_count>0){
answer += a_count;
}
return (answer + move);
}