문제 풀이 (293) 썸네일형 리스트형 [Silver V] 지뢰 찾기 [문제 위치]https://www.acmicpc.net/problem/1996[문제 풀이] 이 문제는 지뢰의 개수가 숫자로 주어진 입력을 바탕으로, 각 빈 칸에 인접한 지뢰의 총합을 계산해 출력하는 방식이다. 일반적인 지뢰찾기와 달리, 한 칸에 여러 개의 지뢰가 들어갈 수 있기 때문에 입력에서 숫자가 적힌 칸은 단순한 지뢰 표시가 아닌, 지뢰의 개수 자체를 의미한다. 가장 먼저 해야 할 일은 입력에서 지뢰의 위치와 그 개수를 파악하는 것이다. 입력은 문자열 형태로 주어지며, 빈 칸은 '.'으로, 지뢰는 '1'부터 '9'까지의 숫자로 표현된다. 이 숫자는 해당 위치에 몇 개의 지뢰가 묻혀 있는지를 나타낸다. 다음으로는 지뢰가 아닌 칸에 대해, 인접한 여덟 방향을 확인하여 그 주변에 있는 지뢰의 개수를 합산.. [Silver V] 2021은 무엇이 특별할까? [문제 위치]https://www.acmicpc.net/problem/24039[문제 풀이]소수 관련 문제이므로 소수 문제에 항상 쓰이는 에라스토스의 체를 이용하여 해결할 수 있다. 에라토스테네스의 체는 특정 범위 내의 모든 소수를 효율적으로 구할 수 있는 방법으로, 먼저 2부터 시작하여 해당 수의 배수들을 모두 지우는 방식으로 소수가 아닌 수를 걸러낸다. 이 과정을 반복하면 지정한 범위 내의 소수만 남게 된다. 문제에서는 입력값보다 큰 두 개의 연속된 소수의 곱 중 가장 작은 값을 구해야 하므로, 먼저 충분한 범위까지의 소수를 구해두고, 그 소수들을 앞에서부터 차례로 곱해가며 해당 조건을 만족하는 값을 찾는다. 입력이 1일 경우 예외적으로 결과가 6이 되며, 이는 2와 3이라는 가장 작은 두 소수의 곱.. [Silver V] 숫자 빈도수 -14912 [문제 위치]https://www.acmicpc.net/problem/14912[문제 풀이]입력받은 정수를 문자로 변환하여 반복되는 횟수를 구했다.#include #include using namespace std;int main() { int n; char digit; cin >> n >> digit; int repeated = 0; for (int i = 0; i [Silver V] 정열적인 정렬 - 16212 [문제 위치]https://www.acmicpc.net/problem/16212[문제 풀이]알고리즘 헤더를 추가하면 정렬을 간단하게 구현할 수 있다.이 외에는 입출력이 전부다.#include #include #include using namespace std;int main() { // 입력받을 수열의 길이 N int N; cin >> N; // 수열을 저장할 벡터 vector sequence(N); // 수열 입력 받기 for (int i = 0; i > sequence[i]; } // 수열 정렬 sort(sequence.begin(), sequence.end()); // 정렬된 수열 출력 for (int i = 0; i [Silver V] 임스와 함께하는 미니게임 - 25757 [문제 위치]https://www.acmicpc.net/problem/25757[문제 풀이]첫 번째 줄에서 신청 횟수 n과 게임 종류 game을 입력받습니다. game은 다음 중 하나입니다: Y: 윷놀이 F: 같은 그림 찾기 O: 원카드 이후 참가자들의 이름을 입력받습니다. 참가자들의 이름은 집합에 저장되므로 자동으로 중복제외 처리됩니다.게임 종류에 따라 필요한 최소 인원을 설정합니다: Y는 2명, F는 3명, O는 4명. 게임에 필요한 인원을 계산할 때, 임스를 포함한 총 참가자 수를 s.size() + 1로 계산하고, 필요한 인원 수로 나눕니다.이를 바탕으로 최대 게임 횟수를 계산하여 결과를 출력합니다.#include #include #include using namespace std;int main.. 2025 프로그래머스 코드챌린지 2차 예선 > 서버 증설 횟수 문제 위치 : https://school.programmers.co.kr/learn/courses/30/lessons/389479 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이 문제는 항상 최선의 수를 계산하는 그리디 기법으로 풀었다. 시간대별로 유저수를 탐색하다가 서버가 더 필요한 경우 최소한 만큼 서버를 증설하는 것이다. 아래 코드의 주석대로 서버를 증설할 경우 answer와 current_server에 가산하여 전체 증설 횟수와 각 시간별 서버 갯수를 독립적으로 관리한다. 또한, 해당 시간대에 소멸된 서버 갯수를 벡터를 통해 k개 후의 위치에 반영할 수 있도로 하였다.#include #incl.. [Silver V] 수 이어가기 - 2635 [문제 위치]https://www.acmicpc.net/problem/2635[문제 풀이]BF 문제이다.모든 케이스를 반복적으로첫 번째 수를 입력받아 첫 번째 수와 같거나 작은 양의 정수 중 하나를 두 번째 수로 선택한 다음 선택된 두 번째 수를 이용하여 음수가 나올 때까지 수열을 생성한다.현재 생성된 수열의 길이가 최대 길이보다 길다면, 해당 수열을 저장하는 것을 모든 케이스에 대하여 반복한다.이후 최대 길이와 수열을 출력한다.#include #include using namespace std;int main() { int first; cin >> first; int maxCount = 0; vector resultSequence; for (int second = first;.. 연속된 부분 수열의 합 문제 위치 : https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 윈도우 슬라이딩으로 푸는 문제이다.초기화 되었을 때는 이런 상태로 되어있다. 이 상태에서 RIGHT위치의 값을 SUM에 더한다. 만약, SUM이 이보다 작다면? 비내림차순 정렬이므로 다음 값을 윈도우에 포함시켜준다. 그러면 아래와 같은 모양이 된다. 이 상태에서 여전히 임의의 정수 N이 k보다 작다면 위 과정을 반복한다. 그러다보면 아래 그림과 같이 k값을 넘게 된다. 그럴 때는 이렇게 LEFT를 한 칸 증가시켜 윈도우 내부.. 이전 1 2 3 4 ··· 37 다음