[BOJ 14888] 연산자 끼워넣기
·
Coding Test/Problem Solving
1. 문제 설명 2. 구현 아이디어 1 - 틀렸습니다 가장 먼저 생각난 풀이는 순열로 가능한 식을 모두 구한 후, 최댓값과 최솟값을 갱신하는 것이였다. 연산자는 최대 N-1(=10)개가 있고, 10! = 3628800이므로 시간 제한도 넉넉하다. 코드 로직은 아래와 같다. 1. next_permutation으로 순열을 구한다 2. 순열로 구한 연산자 순서에 따라 식의 결과를 갱신한다 - ret = v[0] - 반복문을 돌면서 ... ret = ret (연산자) v[i+1] 3. ret과 mx, mn(최댓값과 최솟값을 담는 변수)를 비교하여 최댓값과 최솟값을 갱신한다 #include using namespace std; #define INF 987654321 int calculate(int a, int b..
[BOJ 16236] 아기 상어
·
Coding Test/Problem Solving
1. 문제 설명 조건: 더 이상 먹을 수 있는 물고기가 공간에 없다면 엄마 상어에게 도움을 요청한다 요구사항: 몇 초동안 엄마 상어에게 도움을 요청하지 않고 물고기를 잡아먹을 수 있는가? 이 두 문장을 합하면 더 이상 먹을 수 있는 물고기가 없을 때까지 걸리는 시간을 구해야 한다는 것을 알 수 있다. 물고기를 먹는 조건을 다시 정리하면 아래와 같다. 물고기의 크기가 아기 상어의 크기보다 작아야 한다. 거리가 가까운 순 > X 좌표가 작은 순 > Y 좌표가 작은 순 X = 행, Y = 열 2. 구현 아이디어 1 - 틀렸습니다 이번 문제는 BFS + 빡구현 유형이다. 주어진 조건이 다소 많은데, 해당 조건들을 충족하도록 차근차근 꼼꼼하게 구현하면 풀 수 있다. 아기 상어와 관련된 변수는 걸린 시간, 상어의 ..
[BOJ 2357] 최솟값과 최댓값
·
Coding Test/Problem Solving
2357번: 최솟값과 최댓값 N(1 ≤ N ≤ 100,000)개의 정수들이 있을 때, a번째 정수부터 b번째 정수까지 중에서 제일 작은 정수, 또는 제일 큰 정수를 찾는 것은 어려운 일이 아니다. 하지만 이와 같은 a, b의 쌍이 M(1 ≤ M ≤ 100 www.acmicpc.net 1. 문제 설명 예를 들어 1번~10번 정수는 연두색 박스의 범위이고 최솟값은 5, 최댓값은 100이다. 또 다른 예로, 8번~10번 정수는 주황색 박스의 범위이고 최솟값은 5, 최댓값은 81이다. 2. 구현 아이디어 1 - 맞았습니다!! Segment Tree를 사용하면 쉽게 풀 수 있는 문제이다. (대부분의 세그먼트 트리 문제가 세그먼트 트리를 구현만 하면 쉽게 풀리는 것 같다) [C++] 세그먼트 트리의 개념과 구현 ..
[BOJ 11066] 파일 합치기
·
Coding Test/Problem Solving
11066번: 파일 합치기 소설가인 김대전은 소설을 여러 장(chapter)으로 나누어 쓰는데, 각 장은 각각 다른 파일에 저장하곤 한다. 소설의 모든 장을 쓰고 나서는 각 장이 쓰여진 파일을 합쳐서 최종적으로 소설의 완성본 www.acmicpc.net 1. 문제 설명 2. 구현 아이디어 1 - 맞았습니다!! 처음에는 빡구현 문제라고 생각하여 규칙을 찾아내고자 애를 썼지만 잘 되지 않았다 😥 결국 다른 사람의 코드를 참고하였고, DP로 풀어야 하는 문제임을 알 수 있었다. DP 배열은 2차원 배열로, DP[i][j]는 i번째부터 j번째 파일을 합치는데 필요한 최소 비용을 의미한다. 파일을 합치기 전에는 특정 지점을 기준으로 파일이 나누어져있을 것이다. (like 분할정복에서 합치기 전에 나뉘었던 것처럼 ..
[Programmers] 가장 많이 받은 선물
·
Coding Test/Problem Solving
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 구현 아이디어 1 - 정답입니다! 주어진 정보대로 그대로 구현하면 되는 문제였다. 하지만, vector와 map 중 어느 자료구조를 사용할지 조금 망설이느라 문제를 푸는데 다소 시간이 소요되었다. map이 생각보다 느린 자료구조이기 때문에 최대한 지양하려고 노력하고 있지만, 제한사항이 타이트하지 않아 map을 사용하였다. 소요 시간을 그나마 줄이기 위해 unordered_map을 사용하였다. 다음달에 가장 선물을 많이 받은 친구의 갯수를 출력할 때, map의 두번째 원소로 비교를 해주어야..
[BOJ 1197] 최소 스패닝 트리
·
Coding Test/Problem Solving
1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 www.acmicpc.net 1. 문제 설명 2. 구현 아이디어 1 - 맞았습니다!! 별다른 아아디어 없이, MST 알고리즘을 적용하면 풀 수 있는 문제이다. 최소 신장 트리(MST, Minimum Spanning Tree) - 크루스칼, 프림 알고리즘 1. 최소 신장 트리란? 신장 트리(Spanning Tree)란 그래프의 모든 노드가 사이클 없이 연결된 부분 그래프를 의미한다. 신장 트리는 여러 개가 존재할 수 있으며, 이 중 모든 노드가 ..
짱정연
'Coding Test/Problem Solving' 카테고리의 글 목록 (3 Page)