본문 바로가기

Algorithm

(29)
[BOJ] 14888 연산자 끼워넣기 C++ 문제풀이 & 소스코드 INFO난이도 : SILVER1유형 : 백트래킹, 브루트포스 https://www.acmicpc.net/problem/14888소스코드 : https://github.com/novvvv/PS/blob/main/BOJ/2025/C%2B%2B/14888.cpp PS/BOJ/2025/C++/14888.cpp at main · novvvv/PS알고리즘 문제 풀이 코드 모음. Contribute to novvvv/PS development by creating an account on GitHub.github.comSolve문제분석N개의 수와 N-1개의 연산자가 주어졌을 때, 만들 수 있는 식의 결과가 최대인 것과 최소인 것을 구하는 프로그램을 작성. 예시로 6개의 수와 5개의 연산자 (+ 2개, - 1개, x ..
[BOJ] 17299 오등큰수 C++ 문제풀이 & 소스코드 Info난이도 : GOLD3유형 : DataStructurehttps://www.acmicpc.net/problem/17299소스코드 : https://github.com/novvvv/PS/blob/main/BOJ/2025/C++/17299.cppSolve문제분석F(Ai) - Ai가 수열A에서 등장한 횟수. Ai의 오등큰수 - 오른쪽에 있으면서 수열 A에서 등장한 횟수가 F(Ai)보다 큰 수 중 가장 왼쪽에 있는 수. 그러한 수가 없으면 오등큰수는 -1 a[] : 크기가 n인 수열freq[] : ai가 몇 번 등장했는지 빈도를 저장할 수열ngf[] : 각 원소의 오등큰수 정보를 저장할 수열 int a[max_val], freq[max_val], ngf[max_val]; 수열의 정보를 입력함과 동시에 해당..
[BOJ] 24511 queuestack C++ 문제풀이 & 소스코드 Info난이도 : SILVER3유형 : DataStructurehttps://www.acmicpc.net/problem/24511* 잘못된 풀이는 별도의 해설을 작성하지 않으며, 깃허브 링크만 제공합니다. Solve풀이1) 문제 요구사항대로 n개의 스택, 큐를 만들어 계산 [실패]시간복잡도를 전혀 고려하지 않은 풀이라 O(m*n) 100,000,000,00 대략 100s가 걸려 시간초과가 발생했다. vector res; for (int i = 0; i > x; for (int j = 0; j https://github.com/novvvv/PS/blob/main/BOJ/2025/C%2B%2B/fail/24511.cpp PS/BOJ/2025/C++/fail/24511.cpp at ma..
[BOJ] 5212 지구 온난화 C++ nov #INFO알고리즘 유형 : 시뮬레이션 & 구현난이도 : SILVER2 #SOLVE현재 지도의 모습을 기준으로 50년 뒤의 지도의 모양을 출력하는 구현 문제이다. 우선 2차원 배열을 선언한 뒤 현재 지도의 모습을 배열에 저장한다. "."으로 표시된 부분은 "바다"이며, "X"로 표시된 부분은 "섬"이다. // #1 Input & init Value vector> board; int R, C; cin >> R >> C; for (int i = 0; i line(C); for (int j = 0; j > line[j]; } board.push_back(line); } 문제 조건에 의하면 현재 섬을 기준으로 인접한 세 칸 혹은 네 칸이 바다..
[BOJ] 20436 ZOAC 3 C++ nov #INFO알고리즘 유형 : 시뮬레이션 & 구현난이도 : SILVER4 #SOLVE문제에서 주어진 조건대로 차근차근 구현하면 되는 비교적 간단한 구현 문제이다. 우선 키보드 자판을 저장할 2차원 배열을 선언한 뒤, 정보를 저장한다. /* value */vector > board(3);const vector line1 = {'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'};const vector line2 = {'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'};const vector line3 = {'z', 'x', 'c', 'v', 'b', 'n', 'm'}; 다음으로 처음 왼손 검지 손가락 오른손 검지 손가락 알파벳 위치를 입력받은 뒤..
[BOJ] Solved.ac Class3 2606 바이러스 C++ #INFO#SOLVE인접리스트 방식을 사용한 재귀 DFS 알고리즘을 사용해 풀이했다.main 함수에서 nodeList에 정점 (컴퓨터 정보) 과 연결된 간선 정보를 입력한다. 또한 문제의 요구사항은 1번 컴퓨터와 연결된 컴퓨터 노드의 수 이기에, 1번 컴퓨터만 DFS 로직을 실행한다. int main(){ // Input Logic ios::sync_with_stdio(0); cin.tie(0); cin >> computer_num >> computer_line; for (int i = 0; i > node1 >> node2; nodeList[node1].push_back(node2); nodeList[node2].push_back(node1); ..
[BOJ] Solved.ac Class2 2108 통계학 C++ #info#Solve최빈값 처리에서 상당히 애를 먹었던 문제이다.  각 변수의 역할은 다음과 같다. int N :입력받을 정수의 개수이다. (Max : 500,000)int sum : 입력받은 정수의 총 합을 저장할 변수이다. (산술평균 계산 시 사용)int arr[N] : 입력받은 정수의 정보를 저장할 배열이다. (중앙값 계산 시 사용)vector mode_candidates : 최빈값 후보를 저장할 베겉이다. 문제 조건 중 최빈값이 여러개 존재하는 경우 최빈값 중 두 번쨰로 작은 값을 출력하라는 조건이 있었기에 따로 후보 벡터를 선언해 두었다.int bindo[8001] : 정수가 몇 번 등장하는지 저장할 배열이다. 입력되는 정수의 절댓값은 4000을 넘지 않기에 -4000 ~ +4000 사이의 정수..
Binary Search in C++ STL * STL 내부의 이진탐색 관련 메서드 사용법에 관해 정리한 글 입니다.→About Binary Search#1binary_search method#include bool binary_search(first, last, value); parameter Infofirst : 탐색 시작 위치 (시작 이터레이터) * 배열의 경우 시작 주소 last : 탐색 종료 위치 (종료 이터레이터) * 배열의 경우 마지막 주소value : 탐색 타깃 데이터 ▶ first ~ last 범위 내부에 타깃 데이터 (value) 가 존재하는지 O(LogN) 시간 복잡도로 탐색한다. ▶ 만약 타깃 데이터가 존재한다면 true를 반환하고, 타깃 데이터가 존재하지 않는다면 false를 반환한다.▶ 단, 원소가 정렬된 상태에서만 탐색..