목록2024/04 (11)
체뚱로그
풀이 시간: 2h08m57s01 시간 복잡도: O(NMRC) 공간 복잡도: O(NM + RC) 문제 입력 첫째 줄에 노트북의 세로와 가로 길이를 나타내는 N(1 ≤ N ≤ 40)과 M(1 ≤ M ≤ 40), 그리고 스티커의 개수 K(1 ≤ K ≤ 100)이 한 칸의 빈칸을 사이에 두고 주어진다. 그 다음 줄부터는 K개의 스티커들에 대한 정보가 주어진다. 각 스티커는 아래와 같은 형식으로 주어진다. 먼저 i번째 스티커가 인쇄된 모눈종이의 행의 개수와 열의 개수를 나타내는 Ri(1 ≤ Ri ≤ 10)와 Ci(1 ≤ Ci ≤ 10)가 한 칸의 빈칸을 사이에 두고 주어진다. 다음 Ri개의 줄에는 각 줄마다 모눈종이의 각 행을 나타내는 Ci개의 정수가 한 개의 빈칸을 사이에 두고 주어진다. 각 칸에 들어가는 값은..
풀이 시간: 56m01s01(분석) + 1h07m13s92(초기 코드) + 1h01m41s46(오류 수정) 시간 복잡도: O(N) 공간 복잡도: O(N) 문제 입력 첫째 줄에 N, K가 주어진다. 둘째 줄에는 A1, A2, ..., A2N이 주어진다. 출력 몇 번째 단계가 진행 중일때 종료되었는지 출력한다. 문제 풀이 처음에 이 문제를 읽고 20분동안 분석해보았는데, 조금 헷갈리는 부분이 있어 질문 게시판을 참고하여 문제를 좀 더 잘 풀어서 설명해준 글들을 읽고 다시 분석했다. https://www.acmicpc.net/board/view/116253 https://www.acmicpc.net/board/view/114048 헷갈리는 내용 정리 ▪️ 출력에서 말하는 '단계'라는 것은 지문에 나온 1~4번..
풀이 시간: 57m13s61(고민) + 28m16s94(참고) 시간 복잡도: O(NlogN) 공간 복잡도: O(N^2) 참고 자료: https://youtu.be/WjmEVp-Lgns?si=XVtJgDCWHFl45pv6 문제 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. 입력 첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수) 출력 첫째 줄부터 N번째 줄까지 별을 출력한다. 문제 풀이 문제를 분석해봤지만, 발상이 잘 떠오르지 않아서 일단 냅다 삼각형부터 만들어보았다. #include using namespace std; int N; void triangle() { int odd = 1, width = N * 2 - 1..
풀이 시간: 2h31m38s54 시간 복잡도: O(4^5 * N^2) 공간 복잡도: O(N^2) 참고 자료: https://velog.io/@statco19/boj-12100 문제 입력 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2보다 크거나 같고, 1024보다 작거나 같은 2의 제곱꼴이다. 블록은 적어도 하나 주어진다. 출력 최대 5번 이동시켜서 얻을 수 있는 가장 큰 블록을 출력한다. 문제 풀이 전체 코드 #include #include #include #include using namespace std; int N, ans = 0; vec..
풀이 시간: 56m24s43(문제 분석 및 정리) + 2h26m07s88(코드 작성) + 6m22s28(반례 수정) 시간 복잡도: O(N) 공간 복잡도: O(N) 문제 (문제가 길어서 생략. 맨 하단 사이트의 원문 참고) 입력 출력 문제 풀이 위와 같은 방식으로 다음처럼 구현하였다. 코드 #include #include #include using namespace std; int N, score = 0, cnt = 0; vector v; bool blue[4][6] = { false, }; // 행(4) x 열(6) bool green[6][4] = { false, }; // 행(6) x 열(4) void tile() { for (int i = 5; i >= 0; --i) { for (int j = 0;..