알고리즘/프로그래머스
[프로그래머스/Lv2] 위장
녕이
2022. 8. 9. 20:34
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42578#qna
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
다른 건 다 되는데 테스트 케이스 1번이 곧 죽어도 시간 초과로 안 풀리길래...ㅋ...
이건 진~~~~짜 모르겠어서 다른 사람의 코드를 참조해서 공부했다.
다른 사람들의 말을 들어보면 의상을 안 입는 경우(1개)도 모두 포함해서 세고, 마지막에 1을 빼라던데..
일단 옷을 종류별로 구분해서 m에 넣어줬다. (clothes [i][1] == 배열의 1번째 열 == 옷 종류)
총경우의 수 구하기 : 모든 값을 곱해주면 총경우의 수를 구하는 건데,,, +1을 해줘야 한다. 왜냐면 안 입은 경우도 세줘야 한다..! 하..
마지막으로 아무것도 선택하지 않은 경우를 하나 빼면 정답...
다음부터 경우의 수가 나오는 문제는 이런 식으로 풀어보려고 한다. 후..^^ 과연..
int solution(vector<vector<string>> clothes) {
int answer = 1;
map<string, int> m;
for(auto c : clothes) m[c[1]]++;
for(auto it = m.begin(); it != m.end(); it++) answer *= it->second + 1;
return answer-1;
}
728x90