본문 바로가기
728x90

문제/백준43

c++ 백준_23562_"ㄷ 만들기" https://www.acmicpc.net/problem/23562 23562번: ㄷ 만들기 2021년, 냅다 ㄷ 만들기는 한국인의 기본 소양이 되었다. 우리는 앞에 놓여있는 $n \times m$ 모눈종이에 냅다 ㄷ을 그리려 한다. ㄷ 모양은 $k \times k$ 정사각형 7개를 붙인 형태로 정의한다. 다음은 www.acmicpc.net ​ ㄷ 이 칸을 3k 씩 사용하고 n,m 의 최대가 20 이니 ​ K = 1 ,2 , 3 , 4, 5, 6 까지의 경우를 브루트포스 했다. ​ #include #include using namespace std; #define INF 1000000000 int n,m,a, b; int Dee(vector page,int k,int row,int col) { if (r.. 2023. 6. 16.
c++ 백준_1753_"최단경로" https://www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 www.acmicpc.net 우선순위큐를 사용한 다익스트라 문제이다. ​ 예전에 못풀어서 놔둔 거 ​ 이제 우선순위 큐 다익스트라가 익숙해져서 다시 해보았다. ​ ​ ​ ​ 근돼! ​ BAAAM ​ ​ ​ 요것의 문제는 ​ endl ; 이 아닌 ​ "\n"; ​ 를 사용해야 했다. ​ holymoly ​ 출력이 최대 20,000개 정도 되니 요런 것을 신경을 써줘야됐다 ​ 쟁신 차려 쟁신.. 2023. 6. 16.
c++ 백준_2252_"줄 세우기" https://www.acmicpc.net/problem/2252 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net 순서가 정해져있는 작업을 처리하는 것이다. ​ 게다가 여기서 킬포는 페이지 '출력' 부분에 "답이 여러 가지인 경우에는 아무거나 출력한다." ​ 오케 이거는 위상정렬만 쓰면 되겠다. ​ 위상정렬을 사용해 출력만 해주면 되는 문제였다. #include #include #include using namespace std; void line(vector std.. 2023. 6. 16.
c++ 백준_1600_"말이 되고픈 원숭이" https://www.acmicpc.net/problem/1600 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net 개인적으로 나한테 좀 어려웠다고 느낀다. ​ ​ 처음 접근은 말과 원숭이의 움직임으로 방문한 좌표를 visit, k_visit 두개로 나눠 따로 방문 체크를 하였다. ​ 이렇게 하면 말의 움직임 1~2번 정도만 가능하였다. ​ 그래서 처음으로 3차원 배열을 사용하였다. 각 층은 말의 움직임을 몇번 사용하고 방문했느냐다. ​ 그냥 생각하다가 그려보고싶었다 헿 ​ ​ 근데 그렇게 하더.. 2023. 6. 15.
c++ 백준_1405_"미친 로봇" https://www.acmicpc.net/problem/1405 1405번: 미친 로봇 첫째 줄에 N, 동쪽으로 이동할 확률, 서쪽으로 이동할 확률, 남쪽으로 이동할 확률, 북쪽으로 이동할 확률이 주어진다. N은 14보다 작거나 같은 자연수이고, 모든 확률은 100보다 작거나 같은 자 www.acmicpc.net N의 값이 작아 DFS를 돌렸다. ​ 이동할 수 있는 board로 넓직하게 최대 14니까 30x30 board를 만들어 탐색했다. ​ 그리고 입력된 확률을 100으로 나눠서 0.xx 형태로 바꾸고 그 방향으로 갈 때마다 곱해서 누적확률을 최종 도착지에서 더해주었다. ​ ​ * 답은 잘 나오는데 답은 틀렸다고 나온다 ​ 소수점 출력 부분이 잘못된 거 같아 처음으로 cout.precision(n).. 2023. 6. 15.
c++ 백준_1715_"카드 정렬하기" https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net ​ 우선순위큐를 사용해 작은 것 두개를 뽑아서 더하고 다시 push를 반복했다. ​ 카드묶음이 한개 뿐인 경우에는 비교할 게 없으므로 0 출력했다. ​ ​ ​ 처음에 예제 입력 1을 보고 저게 70이지 왜 100이지 생각했다.. ​ 코딩할수록 점점 국어가 딸리는 거 같다. #include #include using namespace std; int main(void) { ios_ba.. 2023. 6. 15.
728x90