[코딩테스트] 조이스틱
문제
제출 코드(JAVA)
코드 제출
class Solution {
public int solution(String name) {
int answer = 0;
int len = name.length();
//최대로 가질 수 있는 min값은 끝까지 가는것
int min_move = len-1;
for(int i=0; i<len; i++) {
answer += Math.min(name.charAt(i)-'A', 'Z'-name.charAt(i)+1);
//좌우: 연속된 A의 등장에 따라 최소 움직임이 달라진다
int next = i+1;// 현재 다음 위치부터
//내 다음이 A라면 계속 NEXT++
while(next<len && name.charAt(next) == 'A')
next++;
min_move = Math.min(min_move, i+len-next + i);
}//for
answer += min_move;
return answer;
}
}
상하 계산은 쉽게 풀 수 있다.
다만 좌우를 계산하는 과정에서 많이 막혀있었다.
다른 분의 풀이를 보고 해결할 수 있었던 문제.
매 반복문마다
min_move = Math.min(min_move, i+len-next + i);
를 갱신해 더하는게 핵심
정확성 테스트
정확성 테스트
테스트 1 〉 통과 (0.07ms, 52.1MB)
테스트 2 〉 통과 (0.03ms, 52.9MB)
테스트 3 〉 통과 (0.03ms, 52.8MB)
테스트 4 〉 통과 (0.03ms, 52.2MB)
테스트 5 〉 통과 (0.05ms, 51.9MB)
테스트 6 〉 통과 (0.04ms, 52.4MB)
테스트 7 〉 통과 (0.04ms, 52.5MB)
테스트 8 〉 통과 (0.07ms, 52.5MB)
테스트 9 〉 통과 (0.03ms, 53.2MB)
테스트 10 〉 통과 (0.04ms, 52.7MB)
테스트 11 〉 통과 (0.04ms, 52.7MB)
제출 코드(Python)
코드 제출
def solution(name):
alphabet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U',
'V', 'W', 'X', 'Y', 'Z']
nameArray = [n for n in name]
min_distance = len(name) - 1;
result = 0;
next = 0;
for i in range(0, len(name)):
result += min(alphabet.index(nameArray[i]), len(alphabet) - alphabet.index(nameArray[i]))
next += 1
while next < len(nameArray) and nameArray[next] == 'A':
next += 1
min_distance = min(min_distance, i + i + len(nameArray) - next)
result += min_distance
return result
정확성 테스트
정확성 테스트
테스트 1 〉 통과 (0.01ms, 10.3MB)
테스트 2 〉 통과 (0.02ms, 10.2MB)
테스트 3 〉 통과 (0.01ms, 10.3MB)
테스트 4 〉 통과 (0.02ms, 10.3MB)
테스트 5 〉 통과 (0.02ms, 10.3MB)
테스트 6 〉 통과 (0.02ms, 10.3MB)
테스트 7 〉 통과 (0.02ms, 10.2MB)
테스트 8 〉 통과 (0.01ms, 10.2MB)
테스트 9 〉 통과 (0.02ms, 10.3MB)
테스트 10 〉 통과 (0.02ms, 10.3MB)
테스트 11 〉 통과 (0.02ms, 10.2MB)
최근 들어 코테 연습을 하기보단 기업 시험을 보고 다녔다.
한참 기준 미달인 실력이었고, 빠른 시간 내에 풀어야한다는 압박감이 장난아니었다.
고민하는 것도 중요하지만 많이 풀어봐야한다는걸 깨닫고 최대 3~40분동안 풀어보고 감이 안잡히면 다른 사람의 풀이를 보는 방향으로 공부법을 바꾸려고 한다.
Author And Source
이 문제에 관하여([코딩테스트] 조이스틱), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@cham/코딩테스트-조이스틱저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)