public class Solution {
public int solution(String word) {
String[] vowel = {"","A", "E", "I", "O", "U"};
// 제시된 모음들을
//A -> 1
//E -> 2
//I -> 3
//O -> 4
//U -> 5 로 변환
int wordToNumber = 0;
List<String> list = Arrays.asList(vowel);
for(int i=0; i<word.length(); i++) {
int wordIndex = list.indexOf(String.valueOf(word.charAt(i)));
wordToNumber = (wordToNumber * 10) + (wordIndex);
}
int index = 1;
int answer = 1;
// 제시된 모음이 나올 때 까지 계속 검색
while(wordToNumber != index) {
// 모음이 5자리가 아닐 경우
// 1111(AAAA)
if(index / 10000 == 0) {
// 5자리로 만들어준뒤 A 붙이기 (
// 1111(AAAA) -> 11111(AAAAA)
index = (index * 10) + 1;
answer++;
}
// 5자리일 경우
else {
index = fiveToZero(index);
answer++;
}
}
return answer;
}
// 5자리 일 경우 실행
private static int fiveToZero(int index) {
// 맨 끝자리가 U일 경우
// 4자리로 변환
// Ex) AAAAU -> AAAA
if(index % 10 == 5) {
index /= 10;
index = fiveToZero(index);
return index;
}
// U를 제외한 끝자리의 모음이라면
// + 1을 해준다
// ex) 11112(AAAAE) -> 11113(AAAAI)
return index + 1;
}
}
반응형
'Java > 알고리즘' 카테고리의 다른 글
[Java] 프로그래머스 Lv2 - 2022 KAKAO BLIND RECRUITMENT 주차 요금 계산 (0) | 2024.12.06 |
---|---|
[Java] 프로그래머스 Lv2 - 롤케이크 자르기 (0) | 2024.11.06 |
[Java] 프로그래머스 Lv2 - 방문 길이 (0) | 2024.10.30 |
[Java] 프로그래머스 - 할인 행사 (0) | 2024.10.06 |
[Java] 프로그래머스 [2024 KAKAO WINTER INTERNSHIP] 가장 많이 받은 선물 (1) | 2024.09.28 |
댓글