[백준] 2293 동전 1
·
PS/백준
문제https://www.acmicpc.net/problem/2293 입력n = 동전의 종류 (1~100)k = 목표 금액 (1~10,000)coins = 각 동전 금액결과ans: Int = k 목표 금액을 만들 수 있는 경우의 수해석dp를 통한 경우의 수를 카운팅하는 문제 느낌이다. dp 배열의 규칙은 다음과 같다. dp[i] = i원을 만들 수 있는 경우의 수   dp 배열을 저렇게 잡으면 점화식은 이렇게 따오를 것 같다 C를 만들기 위해 B는 동전 A가 부족한 상황이면dp[c] = dp[b] + dp[a] 상황이다.코드import Foundationlet nk = readLine()!.components(separatedBy: " ").map{Int($0)!}let (n,k) = (nk[0], nk..
[백준] 9251 LCS
·
PS/백준
문제https://www.acmicpc.net/problem/9251입력s1 = 문자열s2 = 문자열최대 1000글자결과ans: Int = 가장 긴 부분 수열의 길이해석LCS((Longest Common Subsequence))이므로 dp가 가장 먼저 생각난다. 점화식dp[n][m] = s1의 n번째 s2[m]번째 문자까지 가장 긴 부분 수열의 길이(if \ s[i] == s[j]),  (dp[i][j] = dp[i-1][j-1] +1 )  ,같은 문자를 찾으면 바로 직전 최장 부분 수열 + 1 (else) (dp[i][j] = max(dp[i-1][j], dp[i][j-1]) ,같은 문자가 없을 경우 이전 경우의 수에서 가장 긴 것을 저장 S1 = ACAYKP, S2 = CAPCAK 일 경우 dp 배열..
[프로그래머스] 택배상자
·
PS/프로그래머스
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr입력order:[Int] = 택배 트럭에 실어야하는 순서결과ans: Int = 원하는 순서로 실을 수 있는 최대 상자해석현재 컨베이어 벨트에 있는 순서는 항상 [1...n] 순으로 있고 앞에서부터 뺄 수 있다.이후 택배 트럭에 실어야할 순서인 상자가 아니면 stack에 임시로 넣고 아니면 바로 뺀다. 정리하면 택배 상자를 내릴 수 있는 경우의 수는 2가지다.컨베이어 벨트에서 뺀다.스택에서 뺀다. 단, 스택은 가장 최근에 실은 순으로 뺄 수 있다.코드import Foundationfunc solution(_ o..
[프로그래머스] 산 모양 타일링
·
PS/프로그래머스
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 입력n:Int = 윗변의 길이tops:[Int] = 정삼각형의 위쪽에 정삼각형을 붙이는 여부tops[i] = 0 없는 경우tops[i] = 1 위에 삼각형이 있는 경우결과ans: Int = 만들 수 있는 경우의 수를 10007로 나눈 결과놓을 수 있는 경우의 수 해석 보자마자 dp를 의심할 수 있다. 왜냐하면 이전 삼각형 상태로 다음 상황이 결정되기 때문에 부분 문제를 풀어야되는 dp카테고리다. 경우의 수를 생가가해보지.  1. 현재 i-1에 2번이 놓여있을 때i에 1,3,4(위에 공간이 있을 때) 놓을..
[프로그래머스] 코딩 테스트 공부
·
PS/프로그래머스
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr입력alp:Int = 최초 알고력 cop:Int = 최초 코딩력problems:[[Int]] = problem의 배열 , 길이는 ≤ 6. problem = [alp_req, cop_req, alp_rwd, cop_rwd, cost]alp_req는 문제를 푸는데 필요한 알고력입니다.0 ≤ alp_req ≤ 150cop_req는 문제를 푸는데 필요한 코딩력입니다.0 ≤ cop_req ≤ 150alp_rwd는 문제를 풀었을 때 증가하는 알고력입니다.0 ≤ alp_rwd ≤ 30cop_rwd는 문제를 풀었을 때 ..
[프로그래머스] 파괴되지 않은 건물
·
PS/프로그래머스
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr입력board: [[Int]] = r행 c열의 내구도1 ≤ board의 행의 길이 (= N) ≤ 1,0001 ≤ board의 열의 길이 (= M) ≤ 1,0001 ≤ board의 원소 (각 건물의 내구도) ≤ 1,000skill =[type, r1, c1, r2, c2, degree]1 ≤ skill의 행의 길이 ≤ 250,000skill의 열의 길이 = 6type은 1 혹은 2입니다.type이 1일 경우는 적의 공격을 의미합니다. 건물의 내구도를 낮춥니다.type이 2일 경우는 아군의 회복 스킬을 의미합니다..