프로그래머스 2단계 : 모음사전 (Java 자바)

2023. 9. 28. 19:04·💻 코딩테스트/programmers
728x90
문제설명

 

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

단어 하나 word가 매개변수로 주어질 때, 이 단어가 사전에서 몇 번째 단어인지 return 하도록 solution 함수를 완성해주세요.

 

 

 

제한사항

 

  • word의 길이는 1 이상 5 이하입니다.
  • word는 알파벳 대문자 'A', 'E', 'I', 'O', 'U'로만 이루어져 있습니다.

 

입출력 예

 

 

풀이

 

알파벳 모음 'A', 'E', 'I', 'O', 'U'로 만들 수 있는 길이가 5 이하인 모든 단어가 사전에 수록되어 있을 때, 주어진 단어가 사전에서 몇 번째 단어인지를 찾는 문제입니다. 깊이 우선 탐색 (DFS)을 사용하여 문제를 풀었습니다.

 

1.. 'A', 'E', 'I', 'O', 'U'를 문자열 배열 'dict'에 저장합니다.

2. 깊이 우선 탐색 (DFS)을 시작하며, 현재 문자열 'cur'을 초기화하고, 주어진 단어 'word'를 찾을 때까지 탐색합니다.

3. DFS 함수 내부에서 현재 문자열 'cur'의 길이가 5에 도달하거나, 'cur'이 'word'와 동일한 경우를 처리합니다.

4. 주어진 단어 'word'를 찾았을 때, 순서를 'answer'에 저장합니다.

5. 'A', 'E', 'I', 'O', 'U'를 각각 현재 문자열 'cur'에 추가하며 DFS를 재귀적으로 호출합니다. 'cnt' 변수를 사용하여 단어의 순서를 증가시킵니다.

6. DFS 함수 호출이 끝나면, 주어진 단어 'word'의 위치를 찾아서 'answer'에 저장하고 반환합니다.

 

class Solution {
public String[] dict;
public int cnt = 0, answer = 0;
public int solution(String word) {
// 알파벳 모음 'A', 'E', 'I', 'O', 'U'를 배열에 저장합니다.
dict = "AEIOU".split("");
// 깊이 우선 탐색을 시작합니다.
dfs("", word);
return answer; // 결과를 반환합니다.
}
public void dfs(String cur, String word) {
// 현재 문자열 'cur'이 길이 5에 도달하거나, 주어진 단어 'word'와 동일한 경우 처리합니다.
if (cur.length() == 5 || cur.equals(word)) {
if (cur.equals(word)) {
answer = cnt; // 주어진 단어를 찾으면 그 때의 순서를 'answer'에 저장합니다.
}
return;
}
// 'A', 'E', 'I', 'O', 'U' 각각을 현재 문자열 'cur'에 추가하며 탐색을 진행합니다.
for (int i = 0; i < 5; i++) {
cnt++; // 단어 순서를 1 증가시킵니다.
dfs(cur + dict[i], word); // 현재 문자열에 알파벳을 추가하며 다음 단계로 넘어갑니다.
}
}
}
728x90
저작자표시 비영리 변경금지 (새창열림)

'💻 코딩테스트 > programmers' 카테고리의 다른 글

프로그래머스 2단계 : 오픈채팅방 (Java 자바)  (0) 2023.09.28
프로그래머스 2단계 : 땅따먹기 (Java 자바)  (0) 2023.09.28
프로그래머스 2단계 : 전화번호 목록 (Java 자바)  (0) 2023.09.28
프로그래머스 2단계 : 타겟 넘버 (Java 자바)  (0) 2023.09.21
프로그래머스 2단계 : 피로도 (Java 자바)  (0) 2023.09.21
'💻 코딩테스트/programmers' 카테고리의 다른 글
  • 프로그래머스 2단계 : 오픈채팅방 (Java 자바)
  • 프로그래머스 2단계 : 땅따먹기 (Java 자바)
  • 프로그래머스 2단계 : 전화번호 목록 (Java 자바)
  • 프로그래머스 2단계 : 타겟 넘버 (Java 자바)
gxxg
gxxg
함께 일하고 싶은 개발자를 꿈꾸는 예비개발자의 공부 기록
  • gxxg
    공공
    gxxg
  • 전체
    오늘
    어제
    • 분류 전체보기 (138)
      • ☁️ 구름 x 카카오 Deep Dive 풀스택 (7)
        • html, css (1)
        • Java (3)
        • 스프링 MVC (0)
      • 💻 코딩테스트 (89)
        • 백준 (2)
        • programmers (87)
      • SQLD (1)
      • Language (3)
        • Java (2)
        • JavaScript (1)
      • Style Sheet (0)
        • CSS (0)
        • SCSS & SASS (0)
      • DBMS (2)
        • Oracle (2)
        • MySQL (0)
        • postgresql (0)
        • 데이터베이스 기초 이론 (0)
      • React (0)
      • SpringBoot (0)
      • JSP (2)
      • 알고리즘 (0)
      • 2023-02 몰입형 SW 정규 교육 (24)
        • 9월 프로젝트 (8)
      • 벽돌깨기 (4)
      • Etc (4)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로그래머스
    Lv0
    springboot
    HTML
    오블완
    DFS
    POST
    이클립스
    javascript
    java
    junit 테스트
    programmers
    코딩테스트
    자바스크립트
    spring
    톰캣
    CSS
    0단계
    JSP
    티스토리챌린지
    자바
    LV3
    eclipse
    2단계
    프로젝트 구조
    Lv2
    코테
    구현체
    회원 관리 시스템
    3단계
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
gxxg
프로그래머스 2단계 : 모음사전 (Java 자바)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.