티스토리 뷰
problem
입력 : AEIOU 를 사용하여 만들어진 문자열
출력 : 입력된 문자열의 사전순 위치
제한사항
- word의 길이는 1 이상 5 이하입니다.
 - word는 알파벳 대문자 'A', 'E', 'I', 'O', 'U'로만 이루어져 있습니다.
 
solution
AEIOU 를 각각 0, 1, 2, 3, 4 로 매핑한 후 가장 큰 자릿수부터 781, 156, 31, 6, 1 를 곱하여 구한다. 여기서 곱해주는 수는 한 n 번째의 알파벳이 A 일떄 나올 수 있는 모든 문자열의 경우의 수이다.
CODE
#include <string>
#include <vector>
#include <map>
using namespace std;
int solution(string word) {
    int answer = word.size();
    map<char, int> m;
    m['A'] = 0;
    m['E'] = 1;
    m['I'] = 2;
    m['O'] = 3;
    m['U'] = 4;
    int cn = 781;
    for(char i : word){
        answer += cn * m[i];
        cn = (cn - 1) / 5;
    }
     
    return answer;
}
'algorithm > 프로그래머스' 카테고리의 다른 글
| [C++/프로그레머스] 메뉴 리뉴얼 - 2021 KAKAO BLIND RECRUITMENT (0) | 2021.10.03 | 
|---|---|
| [C++/프로그래머스] 신규 아이디 추천 -2021 KAKAO BLIND RECRUITMENT (0) | 2021.09.20 | 
| [C++/프로그래머스] 위클리첼린지 4주차 - 직업군 추천하기 (0) | 2021.09.07 | 
| [python]프로그래머스 위클리 첼린지 1주차 부족한 금액 계산하기 (0) | 2021.09.05 | 
| [C++] 프로그래머스 Lv.1: 완주하지 못한 선수 (0) | 2021.07.30 | 
					댓글
						
					
					
					
				
			
										공지사항
										
								
							
								
								
									최근에 올라온 글
									
							
								
								
									최근에 달린 댓글
									
							
								
								- Total
 
- Today
 
- Yesterday
 
									TAG
									
							
								
								- web
 - 2
 - programmers
 - forensic
 - 더하기
 - 넓이
 - python
 - 괄호
 - 다익스트라
 - 👼
 - math
 - c++
 - FIBO
 - 4
 - 직업군 추천
 - 꿀따기
 - 카카오 2021 블라인드 테스트
 - 백준
 - 스택
 - openCV
 - 쇠막대기
 - 21758
 - 프로그레머스
 - 1
 - 파이썬
 - boj
 - 나머지
 - HackCTF
 - 피보나치
 - 7567
 
| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 | 
									글 보관함