알고리즘 문제풀이/자바

[프로그래머스-그리디] 조이스틱 JAVA 자바

Ella_K 2022. 11. 25. 03:12

https://school.programmers.co.kr/learn/courses/30/lessons/42860

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

👉 풀이

public class p42860 {
    // https://school.programmers.co.kr/learn/courses/30/lessons/42860
    public int solution(String name) {
        int answer = 0;
        int len = name.length();
        int move = len-1; // 좌우 움직임 최소 값

        for(int i = 0; i < len; i++){
            // name의 각 위치에서 상하 최소 값 구하기
            if(name.charAt(i) < 'N') answer += name.charAt(i) - 'A';
            else answer += 'Z' - name.charAt(i) + 1;

            // A 마지막 위치 구하기
            if(i < len - 1 && name.charAt(i+1) == 'A'){
                int lastAIdx = i + 1;
                while (lastAIdx < len && name.charAt(lastAIdx)=='A'){
                    lastAIdx += 1;
                }
                move = Math.min(move, 2*i + (len-lastAIdx));
                move = Math.min(move, i + 2*(len-lastAIdx));
            }
        }

        return answer+move;
    }

    public static void main(String[] args){
        String name = "JEROEN";
        System.out.println(new p42860().solution(name));
    }
}

 


Source

https://born2bedeveloper.tistory.com/26

 

[프로그래머스] 조이스틱_JAVA

문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42860 코딩테스트 연습 - 조이스틱 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글

born2bedeveloper.tistory.com

https://hu-coding.tistory.com/m/121

 

[Java] 프로그래머스 Lv.2 > 조이스틱

https://programmers.co.kr/learn/courses/30/lessons/42860# 코딩테스트 연습 - 조이스틱 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA,

hu-coding.tistory.com