[프로그래머스][Level2][Java] 모음사전

2022. 5. 22. 18:57·프로그래머스/Level 2

문제

https://programmers.co.kr/learn/courses/30/lessons/84512

 

코딩테스트 연습 - 모음사전

사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니

programmers.co.kr

 

풀이코드

public int solution(String word) {  //모음사전
    int answer = 0;
    int total= 3905;    //총 나올수 있는 경우의 수
    String tmp="AEIOU"; //알파벳 모음의 순서

    for(String str: word.split("")){
        //첫째, 둘째, 셋째, 넷째, 다섯번째자리에 모음이 바뀔 때마다 올라가는 숫자
        //781, 156, 31, 6, 1
        total/= 5;  //모음이 5개이므로 경우의 수에서 5로 나누어줌
        answer+= total*tmp.indexOf(str)+1;  //경우의 수를 계산
    }

    return answer;
}

우선 이 문제에서 AEIOU로 만들 수 있는 모든 단어의 갯수는 3905개인데 그 이유는

한 자리 수일때, 5가지

두 자리 수일때, 5x5해서 25가지

세 자리 수일때, 5x5x5해서 125가지

네 자리 수일때, 5x5x5x5해서 625가지

다섯 자리 수일때, 5x5x5x5x5해서 3125가지

이렇게 나오는데 이 경우의 수를 다 더하면 3905개가 나온다.

 

3905에서 5를 나누면 781이 나오고 -> 제일 앞자리 모음이 바뀔 때, 변하는 수

781에서 5를 나누면 156.xx가 나오고 -> 앞에서 두번째자리 모음이 바뀔 때, 변하는 수

...

이런 식으로 하면

//첫째, 둘째, 셋째, 넷째, 다섯번째자리에 모음이 바뀔 때마다 올라가는 숫자
//781, 156, 31, 6, 1

이렇게 된다.

 

그래서 for문이 한번 돌때마다, total에서 5를 나눠주는 것이고

answer+= total*tmp.indexOf(str)+1;

여기에서 tmp(AEIOU)에서 각 모음의 index위치를 찾아서 total값을 곱해서 answer에 더해줘서 답을 구한다.

저작자표시 비영리 (새창열림)

'프로그래머스 > Level 2' 카테고리의 다른 글

[프로그래머스][Level2][Java] 전화번호 목록  (0) 2022.06.11
[프로그래머스][Level2][Java] 2xn 타일링  (0) 2022.06.04
[프로그래머스][Level2][Java] 괄호 변환  (0) 2022.05.17
[프로그래머스][Level2][Java] 위장  (0) 2022.05.17
[프로그래머스][Level2][Java] 튜플  (0) 2022.04.14
'프로그래머스/Level 2' 카테고리의 다른 글
  • [프로그래머스][Level2][Java] 전화번호 목록
  • [프로그래머스][Level2][Java] 2xn 타일링
  • [프로그래머스][Level2][Java] 괄호 변환
  • [프로그래머스][Level2][Java] 위장
BvrPark
BvrPark
코드 퍼즐과 개발 일상
  • BvrPark
    비버의 개발 일지
    BvrPark
  • 전체
    오늘
    어제
    • 분류 전체보기 (121)
      • JAVA (7)
        • 메서드 외울 것 (2)
      • 프로그래머스 (56)
        • 총 풀이 코드(깃허브) (1)
        • Level 1 (22)
        • Level 2 (33)
      • 백준 알고리즘(단계 별) (16)
        • 총 풀이 코드(깃허브) (1)
        • 1. 입출력과 사칙연산 (2)
        • 2. if 문 (2)
        • 3. for문 (1)
        • 4. while문 (2)
        • 5. 1차원 배열 (3)
        • 6. 함수 (1)
        • 7. 문자열 (1)
        • 8. 기본수학 1 (3)
      • 백준 알고리즘(solved.ac) (9)
        • 총 풀이 코드(깃허브) (1)
        • class2 (8)
      • LeetCode 문제 풀이 (4)
        • 총 풀이 코드(깃허브) (1)
        • Easy (3)
      • 코드업 알고리즘 (7)
      • git과 github사용법 (4)
      • html, css, javaScript (2)
      • 프로젝트 (11)
        • 순수 Java 프로젝트 (2)
        • 쇼핑몰 프로젝트 (2)
        • 게시판 프로젝트 (5)
        • 근태관리 프로젝트 (2)
      • 커피타임 (2)
        • 2023년 (2)
        • 2024년 (0)
  • 블로그 메뉴

    • 링크

      • 포트폴리오
      • 깃허브
    • 공지사항

    • 인기 글

    • 태그

    • 최근 댓글

    • 최근 글

    • Designed By정상우
    BvrPark
    [프로그래머스][Level2][Java] 모음사전
    상단으로

    티스토리툴바