본문 바로가기
코테준비/하루한개도전~

99클럽 코테 스터디 13일차 TIL : 모음사전

by 움바둠바 2024. 8. 7.
728x90

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제자체는 어렵지 않았는데...

확통의 악몽이..........

 


구분이 완전탐색으로 되어있어서 엥,,, 모든 경우의수 구해서 sort한다음 찾으라는 건가??싶었지만

알파벳이 정해져있는 상황에서 규칙을 쉽게 찾을 수 있었다!!

 

A : 1

A - : +5

A - - : +25

A - - - : +125

A - - - - : +625

이런 규칙을 찾을 수 있었다.

즉 지금 단어의 위치와 몇번째 알파벳인지만 알면, 숫자들을 누적해나가면서 계산할 수 있었다!

제출하고 다른사람의 풀이를 살펴봤더니 이런식으로 많이 풀었으니까 맞는 해답인것같다ㅎㅎ

 

#include <string>
#include <vector>
#include <unordered_map>
#include <iostream>
#include <algorithm>

using namespace std;
int A0000 = 781;
int A000 = 156;
int A00 = 31;
int A0 = 6;
int A = 1;

unordered_map<int, int> nums = {{0, 781}, {1, 156}, {2, 31}, {3, 6}, {4, 1}};
vector<int> numss = {781, 156, 31, 6, 1};
unordered_map<char,int> texts = {{'A', 0}, {'E', 1}, {'I', 2},{'O', 3}, {'U', 4}};

int solution(string word) {
    int answer = 0;
    
    for(int i = 0; i<5; i++){
        if(i == word.size()){
            break;
        }
        int nowin = texts[word[i]];
        answer += ((numss[i] * nowin) + 1);
        //cout << numss[nowin] << ", "<<i<<endl;
        
    }
    
    
    return answer;
}

 

굿굿~~

728x90