일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- ros
- 순서대로방문하기
- 조합
- 싸움땅
- 코드트리빵
- 나무박멸
- ICER
- 이진탐색
- 시뮬레이션
- dfs
- 왕실의기사대결
- 슈퍼컴퓨터클러스터
- Calibration
- 구현
- 마법의숲탐색
- 코드트리
- ISER
- ARM
- BFS
- 백준
- DenseDepth
- 루돌프의반란
- 포탑부수기
- 소프티어
- 3Dreconstruction
- DP
- 마이크로프로세서
- 토끼와 경주
- 수영대회결승전
- 삼성기출
- Today
- Total
목록백준 (8)
from palette import colorful_colors
https://www.acmicpc.net/problem/1149언어: C++, 시간: 0ms 접근방법대표적인 dp를 이용하는 문제. 먼저 입력을 행이 N이고 열이 3인 맵에 담고 난 후, 0행부터 N-1행까지 dp로 최솟값의 합을 저장한다: i 번째 행의 R칸에는 i-1번째의 G칸과 B칸 중 min을 저장한다.i 번째 행의 G칸에는 i-1번째의 R칸과 B칸 중 min을 저장한다.i 번째 행의 R칸에는 i-1번째의 R칸과 G칸 중 min을 저장한다....이런식으로 저장하게 되면, i번째 행의 각 열에는 i번째 집에 해당 색깔로 색칠했을때 + 그 이전 행들에 색칠하는 총 최소 비용이 저장된다.dp를 다 구하고 난 후, 정답은 N-1 행의 각 열에 담긴 숫자 중 최솟값이다. 1000 x 1000은 int 범..
https://www.acmicpc.net/problem/1715언어: C++, 시간: 36ms 접근방법정렬을 계속 반복하는 그리디 문제!가장 작은 숫자가 top에 오는 pq를 만들고 난 후,숫자들 중 가장 작은 숫자와 그 다음 숫자를 더하고, 이걸 정답 변수에 더해주고 난 후 다시 pq에 넣는다. ....→ 이걸 pq 크기가 1이 될 때까지 반복하기 고려사항이 문제는 모두 int로 풀이해도 된다.문제에서 N은 10만, 카드묶음의 최대 숫자는 1000인데,정답 변수에는 1000x10만 + 2000x5만 + 4000x2만5천 + 8000x만2500, ... 이런식으로 1억이 계속 더해진다.이 때 log100000 = 16.609... 이므로, 1억이 16.609... 번 더해지는 셈이다.약 16.6억 ..
https://www.acmicpc.net/problem/17825 17825번: 주사위 윷놀이 첫째 줄에 주사위에서 나올 수 10개가 순서대로 주어진다. www.acmicpc.net 언어: C++, 소요시간: 8ms 완탐을 타면서 체크한다! 하드코딩해서 편하게 하도록 유도했다. 재귀 타고 난 다음 복구하는 것 잊지말기 #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; int answer; int players[4];// player 위치 넣는다 int playerMAP[33];// 해당 칸에 플레이어가 있는지 여부 int dice[10]; vector MAP[33] = { {1}, {2}, {3}, {4}, {..
https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 언어: C++, 시간: 12ms 완전탐색으로 재귀 돌면서 모두 체크하기! CCTV별 방향은 따로 2중 벡터 배열로 만들어서 코드 수와 실수를 줄이도록 유도했다. #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; struct Node { int y; int x; }; struct cctv{ int..
구조체 사용, sort를 이용한 벡터 정렬 사용 BFS, 정렬 연습에 좋은 문제! #include #include #include #include #include using namespace std; int N, startY, startX; int MAP[21][21]; int visited[21][21]; int dy[4] = { -1, 1, 0, 0 }; int dx[4] = { 0, 0, 1, -1 }; int babyShark = 2; int mapTime, feedCnt; struct fish { int dist; int y; int x; }; struct Node { int y; int x; }; bool compare(fish a, fish b) {// 나중에 fishes 벡터를 정렬하기 위..
주어진대로 침착하게 구현만 하면 해결되는 문제! 딱히 알고리즘이 필요없는 쌩구현, 시뮬레이션 문제 #include #include using namespace std; int N, M; int dx[4] = {-1, 0, 1, 0}; int dy[4] = {0, 1, 0, -1}; int MAP[50][50]; int cnt; int curR, curC, direction; // 반시계 방향으로 value만큼 방향 변환 int directionChange(int direction, int value) { int temp = direction - value; if (temp < 0) temp += 4; return temp; } // 주변 4칸 중 먼지 찾기 함수 bool dustFind(int row, ..
시계방향 rotation 구현을 생각해내느라 헤맸다. 다행히 예제만 맞으면 무난하게 통과가 가능한 문제인 것 같다,,? 구현 방법은 주석 참고 #include #include #include using namespace std; int N, answer; int MAP[101][101]; int dx[4] = { 1, 0, -1, 0 }; int dy[4] = { 0, -1, 0, 1 }; struct coordinate { int x; int y; }; coordinate rotate(int baseX, int baseY, int x, int y) { coordinate newCool; int gapX = x - baseX; int gapY = y - baseY; newCool.y = baseY + g..
1. 입출력 한 줄에 여러개 입력 받기: map 함수와 input의 split을 이용하고, list로 map을 묶어준다. # 예시: 1 2 4 3 5 를 list로 입력받고 정렬하고 싶을때: number = list(map(int, input().split())) number.sort() 여러줄에 여러개 입력받기 (List Comprehension 활용): comprehension과 list로 map을 묶어준다. # 예시: 라인을 받을 횟수 n을 입력받고 라인마다 push 1 ,.... 이런식으로 여러줄에 여러개가 있을때: n = int(input()) command = [list(map(str, input().split())) for _ in range(n)] for c in command: # c[0..