PS/BOJ

    [22984 C++,python] 반짝반짝 2 / cout << fixed; cout.precision(10);

    [22984 C++,python] 반짝반짝 2 / cout << fixed; cout.precision(10);

    2022년 02월 16일 SUAPC Winter 대회 2번째 팀 연습이었다. 1번째 팀연습때 0 솔의 부담감을 가지고 열심히 풀어보았지만 결과는 1 솔이었다. 내가 풀었던 문제는 22984의 반짝반짝2 와 22986의 Flat Earth 2문제였는데 사실 아직도 Flat Earth 문제는 이해가 가지 않는다. 그래서 우선 22984번을 리뷰하려고 한다. 나는 수학을 좋아하기때문에 확률 구하기라는 문제의 콘셉트를 보고 바로 달려들었다. 처음에 떠올랐던 풀이 방법은 주어진 전구의 확률을 배열의 홀수번째에 입력을 한 뒤에 한 개의 전구가 꺼질 확률과 켜질 확률을 일일이 다 세어주면서 총 몇 개의 전구가 켜지는 지를 cnt로 세준 다음에 더하는 방식이었다. 원래 고등학교에서 확률과 통계를 배울때 일반적으로 쓰는..

    [1149 C++] RGB 거리

    [1149 C++] RGB 거리

    DP 복습 좀 하려고 풀었던 문제.. icpc Sinchon 캠프와 HI-ARC 스터디 진행하면서 DP가 뭔지는 알긴 하는데 개념이 정확히 안 잡혀있는 것 같아서 복습 좀 하려고 선택했다. 이 문제에서 결국 구해야 하는 출력 값은 비용의 최솟값이기 때문에 RGB를 순서대로 cost 배열에 넣어버린 후에 dp[i][j] = min(dp [i-1][not j]) + cost [j]를 for 문 돌려서 구해주면 끝나는 문제이다. DP 문제를 풀때 가장 중요한 것은 베이스 케이스 설정과 부분 문제로 분해하는 것이다. (말로는 참 쉽다ㅋㅋ) #include #include using namespace std; int N; int dp[1001][3]; int cost[3]; int main(void) { ios_..

    [11051 C++, python] 이항 계수 2

    [11051 C++, python] 이항 계수 2

    문제 구분 - Dynamic Programing 11051번: 이항 계수 2 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 동기들과 랜덤실버디펜스할때 처음 봤던 문제다. 사실 처음 봤다고 말하기도 좀 애매한게 여러 번 풀었던 유형이었다. (그런데도 못맞..) 이 문제는 파이썬으로 팩토리얼 돌려버리면 풀리긴 하는데 문제 출제 의도는 dp였다고 생각한다. // // main.cpp // 11051 // // Created by jisu on 2022/02/06. // #include using namespace std; int bino[1001][1001] = {0,}; int main(void) { int n..