[프로그래머스] 모음 사전 - JAVA

2025. 9. 7. 22:39·알고리즘

 

풀이

import java.util.ArrayList;
import java.util.List;

class Solution {

    static char[] vowels = {'A', 'E', 'I', 'O', 'U'};
    static List<String> list = new ArrayList<String>();

    public int solution(String word) {
        makeWords("", 0);
        return list.indexOf(word) + 1;
    }

    private void makeWords(String str, int depth) {
        if(depth > 5) {
            return; // 5글자 이상이면 리턴
        }
        if(depth > 0) { // 1글자 이상이면 리스트에 추가
            list.add(str);
        }

        for (char c : vowels) {
            makeWords(str + c, depth + 1);
        }

    }
}

 

A, E, I, O, U를 이용해 길이 1부터 5까지 만들 수 있는 모든 조합을 만들어서 리스트에 저장하고 word의 위치를 찾는 방식으로 풀었다.

list.indexOf(word)를 이용하면 인덱스를 구할 수 있고, 순서는 1번부터 시작하므로 +1을 해줬다.

 

makeWords("", 0) 에서 시작하게 되면 ""은 아직 빈 문자열이고 depth는 0이므로 리스트에 추가되지 않는다.

depth가 5를 초과할 경우에는 리턴한다.

 

처음 "A" 생성 후 리스트에 저장하고 메서드를 재귀호출한다.

"AA", "AAA", "AAAA", "AAAAA"... 순서로 만들어지고 저장된다.

저작자표시 비영리 변경금지 (새창열림)
'알고리즘' 카테고리의 다른 글
  • [알고리즘] Java로 배우는 누적합/구간합 - feat.백준(구간합 구하기4)
  • [알고리즘] Java로 배우는 Dynamic Programming(동적 계획법) - feat.백준(계단 오르기)
  • [알고리즘] Java로 배우는 카운팅 정렬 - feat.백준(수 정렬하기3)
  • [알고리즘] Java로 배우는 이진탐색 - feat.백준(숫자 카드 2)
뚜비
뚜비
1년차 백엔드&iOS 개발자의 감자 탈출 블로그 🥔🥔
  • 뚜비
    뚜비의 개발로그
    뚜비
  • 전체
    오늘
    어제
  • 글쓰기     관리
    • Devlog
      • Back-End
        • Java
        • Spring
        • JPA
        • HTTP
        • Security
        • Back-End
        • Front-End
      • 알고리즘
      • iOS
        • Swift
      • Database
      • Tips
        • Git & GitHub
        • A to Z
      • 프로젝트
      • 생각정리
  • 태그

    Security
    자바
    Database
    sql
    알고리즘
    생성자
    Java
    스프링
    김영한
    Swift
    MVC
    HTTP
    프로그래머스
    최주호
    객체
    다형성
    spring
    데이터베이스
    성능최적화
    Spring Security
    javascript
    JPA
    자바스크립트
    변수
    DB
    백준
    html
    게시판만들기
    의존성주입
    jsp
  • hELLO· Designed By정상우.v4.10.0
뚜비
[프로그래머스] 모음 사전 - JAVA
상단으로

티스토리툴바