공부/알고리즘 13

프로그래머스 위장 c++ solution

#include #include #include #include using namespace std; int solution(vector clothes) { map M; for(auto cloth : clothes) M[cloth[1]]++; int answer=1; for(auto m : M) answer *= (m.second+1); return answer-1; } A,B 두 가지 종류의 의상이 있을 때 경우의 = A 종류의 의상을 입을 수 있는 가짓수 * B 종류의 의상을 입을 수 있는 가짓수 = ( A 종류의 의상 갯수 + 1 ) * ( B 종류의 의상 갯수 + 1 ) - ( 모두 안 입는 한 가지 경우 ) = ( A + 1 ) * ( B + 1 ) - 1

공부/알고리즘 2021.09.05

leetcode 5. Longest Palindromic Substring c++

문제 Given a string s, return the longest palindromic substring in s. 예시 Input = "babad" / output = "bab" Input = "aca" / output = "a" Input = "cbbd" / output = "bb" string과 DP가 복합적으로 들어간 펠린드롬 문제이다. 풀면서 자꾸 막혔던 부분은, 모든 범위의 펠린드롬을다 확인해야했다는 것이다. 백준에서 풀었던 펠린드롬은 범위가 주어졌었지만, 이번엔 안주어졌기 때문이다. 그래서 이중 for문으로 모두 확인하도록 했다. 왼쪽=i , 오른쪽은=j 라고 할때, 왼쪽 끝은 고정하고 오른쪽 맨끝부터 하나씩 줄여가면서 확인하는 방식이다. 그리고 왼쪽 끝과 오른쪽 끝이 만나면, 왼쪽을 ..

공부/알고리즘 2021.04.19