본문 바로가기
728x90

알고리즘/백준-실버31

백준 14620번 꽃길(C++) 문제14620번: 꽃길2017년 4월 5일 식목일을 맞이한 진아는 나무를 심는 대신 하이테크관 앞 화단에 꽃을 심어 등교할 때 마다 꽃길을 걷고 싶었다.https://www.acmicpc.net/problem/14620정답 코드코테 당시 통과 코드#include #include #include using namespace std; int N; //화단 한변의 길이 //0~N-1까지 //N~ 2N-1까지 //abs(b-a) == (N || N-1 || N+1) int table[201][201]; int least_money = 2147483647; int money_cnt(int x1,int y1){ int cnt = 0; cnt +=table[y1][x1]; cnt+= table[y1+1][x1]; c.. 2023. 11. 12.
백준 1343번 __폴리오미노__(C++) 문제1343번: 폴리오미노민식이는 다음과 같은 폴리오미노 2개를 무한개만큼 가지고 있다. AAAA와 BBhttps://www.acmicpc.net/problem/1343정답 코드#include #include using namespace std; string input; int main(){ cin >> input; int s_size = input.size(); for(int i=0;i < s_size;i++){ int cnt=0; for(int j=0;j+i 2023. 11. 12.
백준 2003번 수들의 합2 (C++) 문제2003번: 수들의 합 2N개의 수로 된 수열 A[1], A[2], …, A[N] 이 있다. 이 수열의 i번째 수부터 j번째 수까지의 합 A[i] + A[i+1] + … + A[j-1] + A[j]가 M이 되는 경우의 수를 구하는 프로그램을 작성하시오.https://www.acmicpc.net/problem/2003정답 코드#include using namespace std; int input[10001]; int sum_input[10001]; int main(){ cin.tie(0); cout.tie(0); ios::sync_with_stdio(0); int n,m; cin >> n >> m; int start_idx = -1; for (int i = 0; i >inp.. 2023. 10. 13.
백준 11660번 구간 합 구하기 5(C++) 문제11660번: 구간 합 구하기 5N×N개의 수가 N×N 크기의 표에 채워져 있다. (x1, y1)부터 (x2, y2)까지 합을 구하는 프로그램을 작성하시오. (x, y)는 x행 y열을 의미한다.https://www.acmicpc.net/problem/11660정답 코드#include using namespace std; int N, M; int input[1025][1025]; int line_sum[1025][1025]; int main(){ cin.tie(NULL); cout.tie(NULL); ios::sync_with_stdio(0); cin >> N >> M; for (int i = 0; i > input[i][.. 2023. 10. 13.
백준 15650번 N과 M(2) (C++) 문제15650번: N과 M (2)https://www.acmicpc.net/problem/15650정답 코드#include using namespace std; int n,m; int ret[8]; int vis[8]; voidfunc(int s,int nu) { if (nu == m) { for(int i=0;i < m;i++) cout m; func(0,0); }문제 풀이의 흐름입력을 받는다.깊이에 도달하기 전까지 받는다. 오름 차순이라서 처음에는 0부터 넣어주고 아에 더 낮은 경우 루프를 돌지 않게 했다.더 낮은경우 루프를 돌지 않으니까 절대 중복은 있을 수 없어서 중복 검사는 따로 해주지 않았다.걸린시간dfs의 기초중에 기초문제!! 15분반성 및 고찰이전에는 많이 쉬운 문제여도 빠르게 풀어야한다는.. 2023. 1. 17.
백준 1182번 부분수열의 합(C++) 알고리즘을 풀며 반성.. 문제1182번: 부분수열의 합https://www.acmicpc.net/problem/1182정답 코드#include using namespace std; int n,s; int cnt; int num[21]; int ret[21]; // 결과를 담을 배열 voidfunc(int k,int tot) { if (k == n) { if (tot == s) cnt++; return ; } func(k+1,tot); func(k+1,tot+num[k]); } int main() { ios:: sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n>>s; for (int i=0;i > num[i]; func(0,0); if ( s== 0 ) cnt.. 2023. 1. 16.
백준 1189번 컴백홈 dfs(C++) 문제정답 코드#include #include #include #include int dx[]={-1,0,1,0}; int dy[]={0,1,0,-1}; using namespace std; int r,c,k; int cnt =0; // voidprint_map(vector arr) // { // for (int i=0;i k; vector arr(r,vector(c,0)); for (int i=0;i > s; for (int j=0; j 2023. 1. 10.
백준 1325번 효율적인 해킹(C++) 문제정답 코드#include #include #include #include #include using namespace std; int compu_num,n; vector compu[10001]; int result[10001]; int vis[10001]; int maxi; int dfs(int a) { vis[a] = 1; int ret = 1; for (int k : compu[a]) { if (vis[k]) continue; ret +=dfs(k); } return (ret); } int main() { ios:: sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> compu_num >> n; for (int i=0;i < n;i++) { int down.. 2023. 1. 9.
백준 9012번 괄호 (C++) (스택활용) 문제정답 코드#include #include #include #include using namespace std; int main() { int n; cin >> n; for (int i=0;i > s; for (auto it : s) { if (it == ')') { if (st.empty()) { cout 2023. 1. 8.
728x90