CS/Algorithm 문제
[BaekJoon] 백준 2587번 대표값2
[BaekJoon] 백준 2587번 대표값2 문제: https://www.acmicpc.net/problem/2587 내코드 #include #include #include using namespace std; int main(void) { ios::sync_with_stdio(false); cin.tie(0); list li; int sum = 0; for (int i = 0; i > tmp; li.push_back(tmp); sum += tmp; } li.sort(); list ::iterator iter; iter = li.begin(); iter++; iter++; cout
[BaekJoon] 백준 5427번 불
[BaekJoon] 백준 5427번 불 문제: https://www.acmicpc.net/problem/5427 내코드 - 일단 이문제는 BFS에 기반한 문제다. 기존 bfs문제들과 조금 다르게 풀어야하기 때문에 알고나면 쉽지만 접근하기가 까다로운문제. - BFS : Queue, 너비 우선, push할때 visited = true를 해줘야함 while(qu가 비어있지 않으면){ 1. pop() 2. 인접 노드들 visited = false면 push } - 알고리즘 1. 테스트 케이스가 여러개이므로 사용하는 변수들을 매번 초기화 시켜준다. 2. bfs를 통해 불에 대한 맵을 만든다.(fireTime) 이때 pop을 통해 얻은 칸의 (time + 1)이 인접한 칸의 time보다 작다면 값을 갱신해준다.(따..
[BaekJoon] 백준 2576번 홀수
[BaekJoon] 백준 2576번 홀수 문제: https://www.acmicpc.net/problem/2576 내코드 - 간단한 문제 #include #include using namespace std; const int NUM = 7; int main(void) { ios::sync_with_stdio(false); cin.tie(0); int sum = 0; int min = 100; int arr[NUM]; for (int i = 0; i > arr[i]; if (arr[i] % 2 == 0) continue; sum += arr[i]; min = min > arr[i] ? arr[i] : min; } if (sum == 0) cout
[BaekJoon] 백준 2753번 윤년
[BaekJoon] 백준 2753번 윤년 문제: https://www.acmicpc.net/problem/2753 내코드 #include #include using namespace std; int main(void) { ios::sync_with_stdio(false); cin.tie(0); int year; cin >> year; if (year % 4 == 0 && year % 100 != 0) { cout
[BaekJoon] 백준 2562번 최댓값
[BaekJoon] 백준 2562번 최댓값 문제: https://www.acmicpc.net/problem/2562 내코드 - 간단한 문제 #include #include using namespace std; int main(void) { ios::sync_with_stdio(false); cin.tie(0); int num[9]; int max = 0; for (int i = 0; i > num[i]; max = max < num[i] ? num[i] : max; } cout
[BaekJoon] 백준 2752번 세수정렬
[BaekJoon] 백준 2752번 세수정렬 문제: https://www.acmicpc.net/problem/2752 내코드 - 입출력을 연습해볼만한 간단한 문제 - 입력받아서 정렬하고 출력하면 된다. - list의 sort함수를 사용해 주었다. #include #include #include using namespace std; int main(void) { ios::sync_with_stdio(false); cin.tie(0); list li; int a, b, c; cin >> a >> b >> c; li.push_back(a); li.push_back(b); li.push_back(c); li.sort(); list::iterator iter; for (iter = li.begin(); iter ..
[BaekJoon] 백준 2573번 빙산
[BaekJoon] 백준 2573번 빙산 문제: https://www.acmicpc.net/problem/2573 내코드 - BFS/DFS 문제. 인접한 노드들 개수를 세줘야되서 bfs의 재귀로 푸는건 안됬다. 그래서 익숙한 bfs로 풀어줬다. - BFS: Queue, 너비우선, push 할때 visited = true; function bfs(){ 1. pop 2. 인접한 노드들 push } - while문을 돌릴때마다 모든 노드가 0이 되지 않았는지 체크해준다. - while문 안에서 변수들을 초기화 해준후, bfs를 돌려준다. 이때 인접 노드가 0이면 배열 nearNode[x][y]++을 해줘서 인접한 바다노드의 개수를 세준다. - 한 뭉텅이가 끝나면 year확인 후 2보다 크지 않으면 세준 인접한..
[BaekJoon] 백준 2468번 안전영역
[BaekJoon] 백준 2468번 안전영역 문제: https://www.acmicpc.net/problem/2468 내코드 - bfs, dfs 로 풀수 있는 문젠데 bfs로 문제를 많이 풀어서 이번에는 dfs로 풀어보았다. - DFS : Stack을 이용, 깊이 우선 function dfs(Node root){ root.visited = true; for each( root 노드에 인접한 모든 노드들에 대해){ if(n.visited == false) dfs(n); } - 물에 잠기는 높이가 주어지지 않았기 때문에 높이 = 0 ~ 최대 높이 - 1 까지 전부 돌려봐야 하지 않을까 생각. - 주어진 입력을 받아서 높이가 가장 높은 영역의 높이를 구해줬다. - 새로운 array에 물에 잠긴 부분은 1, 물..