목록Problem Solving (208)
지우너
요구사항 분석2차원 배열에 빙산의 높이(1빙산의 높이는 일년마다 상하좌우에 저장된 바다(0)의 개수만큼 줄어듦.한 덩어리의 빙산이 주어질 때, 이 빙산이 두 덩어리 이상으로 분리되는 최초의 시간(년)을 구하는 프로그램을 작성만일 전부 다 녹을 때까지 두 덩어리 이상으로 분리되지 않으면 0을 출력입력첫 줄에는 이차원 배열의 행의 개수(N)와 열의 개수(M)가 한 개의 빈칸을 사이에 두고 주어진다(3 그 다음 N개의 줄에는 각 줄마다 M개의 정수(0 배열에서 빙산이 차지하는 칸의 개수, 즉, 1 이상의 정수가 들어가는 칸의 개수는 10,000 개 이하이다.출력(목표)첫 줄에 빙산이 분리되는 최초의 시간(년)을 출력만일 빙산이 다 녹을 때까지 분리되지 않으면 0을 출력왜 코드를 그렇게 짰는지빙산이 다 녹았는지..
1. 문제https://www.acmicpc.net/problem/1194 2. 풀이2-1. 문제를 읽고 이해하기조건빈 칸 ('.'): 언제나 이동할 수 있다. 벽 ('#') : 절대 이동할 수 없다. 열쇠 ('a', 'b', 'c', 'd', 'e', 'f'): 언제나 이동할 수 있다. 이 곳에 처음 들어가면 열쇠를 집는다. 문 ('A', 'B', 'C', 'D', 'E', 'F'): 대응하는 열쇠('a', 'b', 'c', 'd', 'e', 'f')가 있을 때만 이동할 수 있다.민식이의 현재 위치 ('0'): 출발 지점출구 ('1'): 도착 목표 지점미로를 탈출하려고 한다. 한 번의 움직임은 현재 위치에서 수평이나 수직으로 한 칸 이동(= 상하좌우 이동) 목표민식이가 미로를 탈출하는데 걸리는 이동 ..
문제https://www.acmicpc.net/problem/11559요구사항 분석같은 색 뿌요가 4개 이상 상하좌우로 연결되어 있으면 연결된 같은 색 뿌요들이 한꺼번에 없어진다. 이때 1연쇄가 시작된다.뿌요들이 없어지고 나서 위에 다른 뿌요들이 있다면, 중력의 영향을 받아 차례대로 아래로 떨어지게 된다.아래로 떨어지고 나서 다시 같은 색의 뿌요들이 4개 이상 모이게 되면 또 터지게 되는데, 터진 후 뿌요들이 내려오고 다시 터짐을 반복할 때마다 1연쇄씩 늘어난다.터질 수 있는 뿌요가 여러 그룹이 있다면 동시에 터져야 하고 여러 그룹이 터지더라도 한번의 연쇄가 추가된다.상대방의 필드가 주어졌을 때, 연쇄가 몇 번 연속으로 일어날지 계산하여 출력입력총 12개의 줄에 필드의 정보가 주어지며, 각 줄에는 6개의..
BOJ 17471. 게리맨더링문제 링크BOJ 15683. 감시문제 링크SWEA 4008. 숫자 만들기문제 링크요약: 중복 있는 연산자 순서를 전부 고려해 최대·최소 결과를 찾는 문제유형: 중복순열(카운트 기반 DFS는 사실상 중복 있는 순열(multiset permutation) 패턴)풀이 핵심: 카운팅 기반 dfs를 이용하여 연산자 갯수 별로 함수를 분기하여 정답을 갱신함.프로세서 연결하기문제 링크등산로 조성문제 링크요리사문제 링크벌꿀 채취문제 링크수영장문제 링크유형: dfs / dp풀이 핵심: dfs를 이용해서 요금제 선택을 기준으로 분기하여 정답 도출BOJ 지름길문제 링크유형: 다익스트라 / dp풀이 핵심: 원래 길을 연결하고, 목적지보다 큰 값, 원래 길보다 느린 지름길은 연결하지 않는다. 새로..
문제https://www.acmicpc.net/problem/10448 풀이가장 중요한 건 몇 번째 삼각수까지 볼 것인가인 거 같다. 45*46/2=1035이므로 45보다 큰 수가 들어가면 최대 수인 1000을 맞추지 못한다. 다른 풀이에서는 45까지의 삼각수를 모두 배열에 입력해둔 뒤 3중 for문으로 i, j, k 3개의 수를 선택하는 경우를 표현한 코드도 있었다. 코드#include #include using namespace std;vector v;bool isSatisfied;// 삼각수 공식: Tn = n(n+1)/2bool check(int testNum){ int sum = 0; for(int e : v){ sum += e*(e+1)/2; } return ..
1. 문제https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2. 풀이2-1. 문제를 읽고 이해하기총 N 마리의 폰켓몬 중에서 N/2마리를 가져가폰켓몬은 종류에 따라 번호를 붙여 구분. 따라서 같은 종류의 폰켓몬은 같은 번호를 가진다.예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 ..