📖 문제 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 💡 풀이 방식 • 브루트포스 - 123 이상 987 이하의 숫자들 중에 대해 중복되는 경우와 0이 들어간 경우를 제외하고 반복문을 돌려 조건을 만족하는 숫자를 찾는다. 💥 유의사항 제한사항 : 중복숫자가 들어있거나, 0이 들어있는 경우 🔺 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 4..
📖 문제 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 💡 풀이 방식 • 시뮬레이션 완전탐색을 통해 모든 점에 대해 K를 변경하며 채굴할 수 있는 금의 갯수를 센다. 이 때, (금 1개 가격 * 채굴한 금 개수)이 채굴에 드는 비용보다 같거나 큰 경우에만 금의 갯수를 더 큰 값으로 비교해 갱신한다. 💥 유의사항 k의 범위! 격자 내 모든 격자를 덮기 위한 가능한 K의 최대범위 = 가장 거리가 먼 두 점 (좌측 상단-우측 하단) 거리 계산 : 2 * (N-1) + 대각선 길이는 가로나 세로 길이의 2배이므로 2*(N-1)이면 충분히 모든 칸 커버 가능..
📖 문제 1969번: DNA DNA란 어떤 유전물질을 구성하는 분자이다. 이 DNA는 서로 다른 4가지의 뉴클레오티드로 이루어져 있다(Adenine, Thymine, Guanine, Cytosine). 우리는 어떤 DNA의 물질을 표현할 때, 이 DNA를 이루는 뉴클레오 www.acmicpc.net 💡 풀이 방식 • 그리디 . k번째 문자를 선택할 때 k번째 문자들 중 가장 자주 나온 문자를 새로운 문자열의 k번째로 지정하며 문자열을 완성한다. 💥 유의사항 Hamming Distance의 합 구하는 식 : (N - k번째 문자열의 최대 등장 횟수) 한 값을 누적해 저장한다. 🔺 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26..
📖 문제 1058번: 친구 지민이는 세계에서 가장 유명한 사람이 누구인지 궁금해졌다. 가장 유명한 사람을 구하는 방법은 각 사람의 2-친구를 구하면 된다. 어떤 사람 A가 또다른 사람 B의 2-친구가 되기 위해선, 두 사람 www.acmicpc.net 💡 풀이 방식 • 플로이드-워셜 (최단경로) ⇨ 시간 복잡도 : O(N^3) 필요 자료구조 - 각 사람 간 거리 저장할 2차원 int형 배열 - 2차원 배열에 저장할 상수 변수 INF . 값을 입력받으면서 Y면 1을, N이면 INF (=9999) 값을 저장한다. . 플로이드-워셜 통해 친구 연결을 구한다. - 경로를 확인할 세 사람 中 둘 이상이 같은 경우 (출발지=경유지 or 경유지 = 도착지 or 도착지 = 출발지 인 경우), pass한다. - 셋 다 ..
📖 문제 20164번: 홀수 홀릭 호석호석이는 짝수랑 홀수 중에서 이니셜이 같은 홀수를 더 좋아한다. 운전을 하던 호석이는 앞차의 번호판이 홀수로 가득할 때 사랑스러움을 느낄 정도이다. 전화번호도 홀수만 있고 싶다. 그렇게www.acmicpc.net 💡 풀이 방식• 재귀, 브루트포스재귀 함수의 인자로 (현재 숫자, 여태껏 나온 홀수의 갯수)를 갖는다. [1] 재귀 함수 cut(int num, int total)1. 한 자리 숫자인 경우, 여지껏 나온 홀수의 갯수와 최솟값 최댓값을 비교해 갱신한다.2. 두 자리 숫자인 경우, 두 숫자를 분해한다. (재귀 함수 사용)3. 세 자리 이상의 숫자인 경우, 완전탐색을 통해 해당 숫자를 3등분할 인덱스 2개를 구한다.그리고 나서 해당 인덱스들에서 잘랐을 때..
📖 문제 17136번: 색종이 붙이기 과 같이 정사각형 모양을 한 다섯 종류의 색종이가 있다. 색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있으며, 각 종류의 색종이는 5개씩 가지고 있다. 색종이를 크 www.acmicpc.net 💡 풀이 방식 • 브루트포스 + 백트래킹 - 최소 색종이 갯수 사용 ⇒ 큰 종이부터 붙이기 ⇒ 그리디 - 완전탐색 ⇒ 브루트포스 + 백트래킹 - N X N 범위 내에 모두 1이 존재한다면, N X N 색종이를 붙였다 떼는 작업 반복 1. 종이 배열에 종이의 최대 갯수 저장 2. DFS 활용해 백트래킹 시도 - 기본 탐색 방향 : 가로 - 끝 칸 도착 시, 아랫줄 첫 칸으로 이동 3. 좌표가 맨 마지막 점 도달 시, 지금까지 붙인 종이 갯수 반환 ..
📖 문제 2615번: 오목 오목은 바둑판에 검은 바둑알과 흰 바둑알을 교대로 놓아서 겨루는 게임이다. 바둑판에는 19개의 가로줄과 19개의 세로줄이 그려져 있는데 가로줄은 위에서부터 아래로 1번, 2번, ... ,19번의 번호 www.acmicpc.net 💡 풀이 방식 • 구현 (브루트포스) 1. 완전탐색으로 모든 지점에서 4방향에 대해 1) 오목이 되었는지, 2) 오목이 되었다면 어떤 색 돌로 오목을 만들었는지, 3)가장 왼쪽에 있는 점은 무엇인지 검은 돌과 흰 돌 좌표에 좌표를 저장하며 진행한다. - 가로 방향 확인 - 세로 방향 확인 - 대각선1 방향 ( ↘ )확인 - 대각선2 방향( ↙ )확인 2. 값을 입력받은 검은 돌 좌표 리스트와 흰 돌 좌표 리스트를 행 좌표 오름차순으로 정렬한다. (행 좌..
📖 문제 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 💡 풀이 방식 • 구현, 브루트포스 테트로미노로 만들 수 있는 19가지 경우에 대해 모두 작성했다^^ㅜ (그림 참고) 🔺 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65..