목록분류 전체보기 (189)
정화 코딩
정렬 (Sorting) 특정한 기준에 따라 데이터를 늘어놓는 알고리즘 (아래에 제시한 정렬들은 모두 오름차순 기준) 1. 선택 정렬 (Selection Sort) 💡 정의 순차적으로 가장 작은 수를 선택하고 교환하는 것을 반복하는 정렬 💡 과정 1. 리스트에서 가장 작은 수를 선택한다. 2. 가장 왼쪽의 원소와 교환한다. 3. 반복한다. 💡 특징 - 시간복잡도: worst, average, best 모두 O(n^2) 2. 삽입 정렬 (Insertion Sort) 💡 정의 자신보다 작은 수가 나올 때 까지 오른쪽로 밀어 삽입하는 정렬 💡 과정 1. 자신의 왼쪽에 자신보다 작은 수가 나올 때까지 오른쪽으로 민다. 2. 왼쪽에 자신보다 작은 수가 나오면 삽입한다. 3. 반복한다. 💡 특징 - 시간복잡도: wo..
1/16. 공 (백준 1547번) https://www.acmicpc.net/problem/1547 //C #include int main() { int ball = 1; int a, b, m; scanf("%d", &m); for(int i = 0; i < m; i++) { scanf("%d %d", &a, &b); if(a == ball) ball = b; else if(b == ball) ball = a; } printf("%d\n", ball); return 0; } 브론즈3인데 은근 애먹은 문제. 처음엔 생각없이 그대로 구현하려고 하다가 포인터까지 생각하게 되었고... 계속 머리를 싸매다가 이렇게 복잡한 문제는 아닌 것 같은데... 하면서 오빠한테 물어봤다. 오빠는 모든 걸 다 구현할 필요가 없..
1. 오큰수 (백준 17298번) https://www.acmicpc.net/problem/17298 #include int main() { int n; scanf("%d", &n); int a[n]; for(int i = 0; i a[i]) { printf("%d ", a[j]); exist = 1; break; } } if(exist == 0) printf("-1 "); } return 0; } 스택과 관련된 문제였는데, 처음에는 스택없이 반복문만을 이용해서 풀었다. 당연히 시간 초과..
스택 (Stack) 💡 정의 자료의 입력과 출력을 한 곳(방향)으로 제한한 자료구조 💡 특징 - 후입선출 구조: 마지막(Last)에 들어온(In) 데이터가 먼저(First) 나간다(Out) → Last-in-first-out(LIFO) - 시간복잡도: 삽입 삭제 연산 O(1) - top을 통해 접근하기 때문에 데이터 접근, 삽입, 삭제가 빠르다. - top 위치 이외의 데이터에 접근할 수 없으므로 탐색할 수 없다. 탐색하려면 모든 데이터를 꺼내면서 진행해야 한다. 💡 관련 용어 - top(peek): 가장 최근에 저장된 데이터이자 먼저 삭제 될 데이터 - push: 데이터 넣기/삽입. (삽입 된 데이터는 삭제시 가장 먼저 삭제 될 데이터가 됨.) - pop: 데이터 꺼내기/삭제. (가장 최근에 저장된 데..
💡 자료구조 데이터를 어떠한 형태로 저장하고 관리할 것인지에 대한 방법. 어떻게 효율적으로 자료를 저장할 것인가? ex) 배열, 스택, 큐, 덱, 그래프, 트리, ··· 💡 알고리즘 저장된 데이터를 찾거나 변형하거나 수정할 때 필요한 방법. 문제를 어떻게 해결할 것인가? ex) 재귀적 알고리즘, 탐욕 알고리즘, 검색 알고리즘, 정렬 알고리즘 ··· [출처 및 참고] https://velog.io/@kmg2933/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0%EC%99%80-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EC%9D%98-%EC%B0%A8%EC%9D%B4
1/9. 조약돌 (백준 2097번) https://www.acmicpc.net/problem/2097 //C #include #include int main() { int n, m, ans; scanf("%d", &n); if(n = 24) a -= 24; printf("%d %d\n", a, b); return 0; } 오늘도 브론즈3으로 가벼운 문제 슈슝- (정답) 1/14. 별 찍기 - 1 (백준 2438번) https://www.acmicpc.net/problem/2438 #python n = int(input()) for i in range(n): print ('*' * (i+1)) 파이썬으로 푸는 첫 문제!! (정답) 1/15. N 찍기 (백준 2741번) https://www.acmicpc...
1/5. 직사각형에서 탈출 (백준 1085번) https://www.acmicpc.net/problem/1085 //C #include int main() { int x, y, w, h; int disX, disY; scanf("%d %d %d %d", &x, &y, &w, &h); disX = (x < w-x)? x : w-x; disY = (y < h-y)? y : h-y; printf("%d\n", (disX < disY)? disX : disY); return 0; } (정답) 백준 솔브드에서 새싹 배지 받기 프로젝트 1일차!! 화장실도 안 가고 일어나자마자 문제를 풀었다. 근데 너무 신기하게 머리를 굴리다보니 잠이 깼다. 너무 너무 좋은 것 같다! (왕만족) 1/6. 24 (백준 1408번) h..
1. 수 정렬하기 (백준 2750번) https://www.acmicpc.net/problem/2750 #include int main() { int n; scanf("%d", &n); int a[n]; for(int i = 0; i a[j+1]) { temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } for(int i = 0; i < n; i++) { printf("%d\n", a[i]); } return 0; } (정답) 2. 버블 소트 (백준 1377번) http..