본문 바로가기

전체 글

(18)
[백준] 1966. 프린터 큐 문제 링크 https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 문제 해석 및 삽질 내용 문서의 우선순위에 따라서 내가 원하는 문서가 출력되는 순서를 알려주는 프로그램 문서가 출력되면서 queue에 달려있는 문서의 순서가 바뀌기 때문에 문서의 순서와 우선순위를 pair로 묶어서 관리한다. 입력된 전체 문서의 우선순위를 우선순위 큐(priority_queue)를 이용하여 정렬하고 하나씩 꺼내서 사용한다. 100개가 넘어가는 경우에도 이런식으로 짜는게 맞을..
[SWEA] 2105. 디저트 카페 문제링크 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5VwAr6APYDFAWu SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제해설 및 삽질내용 문제의 사항들을 단순화할 필요가 있다. 일정한 방향으로 순회하는 것만 고려하면 된다. 어떠한 방향으로 순회하더라도 순서만 바뀔 뿐 방문하는 Node는 동일하다. 왼쪽 아래로 내려간 만큼 오른쪽 위로 올라와야 하고, 오른쪽 아래로 내려간 만큼 왼쪽 위로 올라와야 하는 것은 맞지만 그 숫자를 일일이 셀 필요는 없다. 조건을 넘어가지 않게만 하자. 순회를 마치고 시작 지점으..
[백준] 2468. 안전 영역 문제링크 https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 문제 해설 및 삽질내용 침수되지 않은 영역을 group화 하여 최대 group 수를 출력하는 문제 Group화 할때 list 최대 갯수는 Node전체 숫자보다 더 많게 지정하자. Node당 4개까지 추가 가능하기 때문이다. list에 추가하기 전에 조건을 추가하면 Node 숫자정도로 최적화 할 수 있을 듯 하다. 침수되지 않은 영역들을 group화 할때 index가 제시된 N을 벗어나지 않도록 ..
[SWEA] 4317. 칩 생산 문제링크 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWL21nCaM8wDFAUE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 해설 및 삽질내용 문제는 2X2를 사용하는 칩을 웨이퍼에 얼마나 많이 꽂을 수 있느냐는 것으로 x+2, x+1의 경우로 나누어서 구하면 된다. 경우의 수가 늘어날 경우를 대비하여 dp를 이용해 이전의 작업과 비교하여 더 좋은 값일경우만 수행하도록 한다. H,W의 범위를 잘못 알아서 코드를 아무리 디버깅해도 문제가 풀리지 않았다. 문제를 차근차근 잘 읽어보자. 소스코드 #include ..
[SWEA] 1259. 금속막대 문제링크 https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=5&contestProbId=AV18NaZqIt8CFAZN&categoryId=AV18NaZqIt8CFAZN&categoryType=CODE&problemTitle=&orderBy=RECOMMEND_COUNT&selectCodeLang=ALL&select-1=5&pageSize=10&pageIndex=2 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제해결 및 삽질내용 모든 금속막대를 DFS 탐색하면서 연결 할 수 있을 경우 선택한다. 금속막대를 연결했을 때, 앞쪽..
[SWEA] 1767. 프로세서 연결하기 문제링크 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV4suNtaXFEDFAUf&categoryId=AV4suNtaXFEDFAUf&categoryType=CODE&problemTitle=&orderBy=RECOMMEND_COUNT&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 해결과 삽질 내용 기본문제 해결 방법은 DFS이다. 이를 기반으로 예외되는 사항을 예외처리하여 문제를 해결한다. 가장자리에 위치한 것은 항상 ..
[SWEA] 4340. 파이프 연결 문제 링크 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWL6LhM6A60DFAUY SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 해설과 삽질 내용 주어진 입력 예제에 맞는 출력을 구하는 것은 backtracking을 이용하면 어렵지 않았다. 시간초과가 계속 발생하여 최적화하는데 시간을 많이 소비했다. 시작점부터 탐색을 시작하면 불필요한 탐색 경우가 발생하기에 도착점에서부터 역으로 길을 찾아가는 것이 좋다. 탐색을 시작하기 전에 예외처리 부분을 세심하게 살펴보아야 한다. 최종 위치에 도착한 경우, 범위를 벗어난..
[백준] 연산자 끼워넣기 No. 14888 문제 링크 www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 문제 해설 및 삽질 내용 모든 경우의 수를 살펴보면서 최대값과 최소값을 확인하면 된다. 연산자 우선순위를 고려하지 않고, 무조건 앞에서 부터 연산을 해야 하기에 dfs로 문제를 해결한다. 소스코드 #include #define DBG 0 using namespace std; long long input[11]; int operator_arr[4]..