전체 글 (35) 썸네일형 리스트형 14940번: 쉬운 최단거리 https://www.acmicpc.net/problem/14940 14940번: 쉬운 최단거리 지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000) 다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이 www.acmicpc.net 1. 문제 분석 2에서 부터 BFS 2. 코드 작성 #include #include #include using namespace std; int map[1000][1000]; int check[1000][1000]; int ans[1000][1000]; queue q; int n, m; int dx[4] = { 0,0,1,-1 }, dy[4] = { 1.. 11052번: 카드 구매하기 https://www.acmicpc.net/problem/11052 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 1. 문제 분석 맨 처음엔 가격/카드 개수,카드 개수, 가격으로 tuple을 만들어서 가성비가 안 좋은 순으로 그리디로 하면 풀 수 있을 줄 알았는데 풀 수 없었다. DP로 푸는 문제 였다. 2. 코드 작성 #include #include using namespace std; int price[10001]; int dp[10001]; int main() { ios_base::sync_with_stdio(.. 7562번: 나이트의 이동 https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 1. 문제 분석 맨 처음엔 이동하는 규칙을 찾아서 계산해서 풀어보려고 했는데, 그러기엔 체스판의 범위라는 변수가 있어서 BFS로 풀어야 하나라는 생각을 했다. 체스판의 크기가 300*300이니까 시간 안에 가능하다고 생각했다. 2. 코드 작성 #include #include #include using namespace std; queue q; int check[300][300]; int dx[8] .. 11000번: 강의실 배정 https://www.acmicpc.net/problem/11000 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) www.acmicpc.net 1. 문제 분석 s, t의 범위가 10^9까지이기 때문에 무식하게 배열을 채우는 방법은 안된다. 그렇기 때문에 최대 범위가 200000인 N에 집중해야 하는데 (N/2)^2도 1초가 넘기 때문에 새로운 무언가가 필요했다. 2. 코드 작성 #include #include #include #include using namespace std; pair p_list[200000]; int clas[200000]; bool comp(pair& a, pa.. 18111번: 마인크래프트 https://www.acmicpc.net/problem/18111 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net 1. 문제 분석 이 문제의 시간제한은 1초이고 N, M의 최댓값은 500, 500 높이의 범위는 0~256 이를 계산하면 257*500*500=64,250,000이다. 코드를 조금만 추가해도 1초가 넘어버리기 때문에 무식하게 풀면 안된다. 2. 코드 작성 #include #include using namespace std; int height[257]; pair p_list[257]; bool .. 2676번: 라스칼 삼각형 https://www.acmicpc.net/problem/2676 2676번: 라스칼 삼각형 첫째 줄에 테스트 케이스의 개수 T(1 > m; if (n == 0 || n == m) { ans = 1; } else { ans = 1 + (m * (n - m)); } cout 1188번: 음식 평론가 https://www.acmicpc.net/problem/1188 1188번: 음식 평론가 첫째 줄에 소시지의 수 N과 평론가의 수 M이 주어진다. (1 ≤ N, M ≤ 100) www.acmicpc.net 1. 문제 분석 소시지 수 N, 평론가 수 M N*M 크기의 소시지를 한 개 만들었다. i%N==0이면 소시지를 잘라주고 cnt++ i%M==0이면 원래 잘린 곳이니까 cnt-- 2.코드 작성 #include using namespace std; bool sausage[10001]; int main() { ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); int N, M; cin >> N >> M; int cnt = 0; for (int .. 10026번: 적록색약 https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 1. 문제 분석 구역의 개수를 세는 그래프 문제이다. 적록색맹과 아닌사람을 각각 출력하는 문제인데 그리드와 체크를 따로 만들어 주어서 해결했다. 2. 코드 분석 #include #include #include using namespace std; char grid[100][100]; char grid_RG[100][100]; bool check[100][100]; bool check_RG[.. 이전 1 2 3 4 5 다음