코드 공부14 [백준] 1655번 - Python 문제 https://www.acmicpc.net/problem/1655 문제 풀이 1. 정렬처음에는 단순하게 정렬로 문제를 접근했다.N = int(input())arr = []for i in range(1,N+1): m = int(input()) arr.append(m) raa = arr.copy() raa.sort() if i % 2 == 1: print(raa[i//2]) else: print(raa[i//2-1]) 배열에 값을 넣을 때마다 , 정렬해서 중간값을 뽑아내는 방법으로 구현을 했으나, 시간초과가 떠서 다른 방식으로 접근해야한다. 2. 우선순위 큐(Priority Queue)큐나 스택과는 달리, 각 원소들은 우선 순위를 가지고 있다.우선순위 큐에서, 높은 우.. 2024. 11. 24. 백준 1157번 - Python 문제 이론 set - 중복 문자를 제거해줌 count() string.count(char or substring, start, end) # Char 또는 substring: 주어진 문자열에서 검색하려는 단일 문자 또는 하위 문자열을 지정. 주어진 문자열의 문자 또는 하위 문자열의 수를 반환. # start : (선택 사항) 검색이 시작될 시작 인덱스를 나타냄. 지정하지 않으면 0부터 시작 # end : (선택 사항) 검색이 끝나는 끝 인덱스를 나타냄. 지정하지 않으면 지정된 목록이나 문자열의 끝까지 검색. word=input().upper() word_list = list(set(word)) cnt=[] for i in word_list: count = word.count(i) cnt.append(cou.. 2024. 4. 8. c++ - 11주차 그리지 알고리즘 - 현재 상태에서 보는 선택지 중 최선의 선택지가 전체 선택지 중 최선의 선택지라고 가정하는 알고리즘 수행과정 1. 해 선택 : 현재 상태에서 가장 최선이라고 생각되는 해를 선택 2. 적절성 검사 : 현재 선택한 해가 전체 문제의 제약 조건에 벗어나지 않는지 검사 3. 해 검사 : 현재까지 선택한 해 집합이 전체 문제를 해결할 수 있는지 검사. 전체 문제 해결 못하면 다시 1. 으로 돌아감 예제 ) 1931. 회의실 배정 #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; cin >> N; vector A(N); for (int i = 0; i .. 2023. 5. 22. C++ - 10주차 DFS ( 깊이 우선 탐색) - 재귀 함수로 구현 ( 스택 오버플로우에 유의해야함) - 스택 자료구조 이용 - 시간 복잡도 O(V+E) - 단절점 찾기 , 단절선 찾기 , 사이클 찾기 , 위상 정렬 -> 인접 리스트: 한 번 방문한 노드를 다시 방문하면 안됨. -> 스택 : 후입선출 특성을 가짐 1. DFS를 시작할 노드를 정한 후 사용할 자료구조 초기화 인접 리스트로 그래프 표현하기, 방문 배열 초기화 하기, 시작 노드 스택에 삽입하기 2. 스택에서 노드를 꺼낸 후 꺼낸 노드의인접 노드를 다시 스택에 삽입하기 pop을 수행해 노드를 꺼냄 . 꺼낸 노드의 인접 리스트의 인접 노드를 스택에 삽입해 배열 체크. 3. 스택 값이 없을 때 까지 반복하기 BFS ( 너비 우선 탐색) - 시작노드 기준으로 가까운 .. 2023. 5. 15. 백준 2751번 - c++ S[i] = stoi(A.substr(i,1)); // 문자열 받아서 1자리씩 배열에 저장 수 정렬하기 퀵 정렬을 이용하여 정렬하는 방법을 생각했음. 하지만 시간 초과... #include using namespace std; int arr[1000001]; void quickSort(int arr[], int left, int right) { int i = left, j = right; int tmp; int pivot = arr[(left + right) / 2]; // Partition while (i pivot) j--; if (i > N; if (N 1000000) { return 0; } for (int i = 0; i > arr[i]; } // .. 2023. 5. 9. 백준 10824번 c++ 처음에는 A , B, C, D 를 string 값으로 입력 받아서 문자열을 합하고 문자열을 int형으로 변환하여 출력하는 방식을 생각했다. 그래서 문자열을 합칠 수 있도록 을 이용하는 방법을 택하였다. #include #include #include using namespace std; int main() { string A, B, C, D; string ab; string cd; int sum1; int sum2; stringstream ss; stringstream SS; cin >> A >> B >> C >> D; /*ab = A + B; cd = C + D;*/ ss > C >> D; /*ab = A + B; cd = C + D;*/ string SUM1 = A + B; string SUM2= C.. 2023. 5. 9. 이전 1 2 3 다음