일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- web
- 코드업
- 프로그래머스
- 공부
- 기초100제
- 리덕스장바구니
- react
- memory
- C++
- react-redux
- 정렬
- CPU 스케줄링
- Spring
- 일상
- 토이프로젝트
- 타입스크립트
- 분할메모리할당
- js to ts
- 스프링
- Java
- Redux
- 자료구조
- codeup
- 알고리즘
- 파이썬
- OS
- 백준
- error
- Operating System
- 협업
- Today
- Total
목록Algorithm (180)
감자튀김 공장🍟
✔ 문제 ✔ 풀이 a, b = map(int, input().split()) print(a*b) ✔ 후기 1000, 1001번과 유사한 문제이다. 사칙연산의 기호만 바뀜!!!
✔ 문제 ✔ 풀이 a, b = map(int, input().split()) print(a-b) ✔ 후기 1000번 문제와 같은 결의 문제이다. 덧셈이 아니라 뺄셈이라는 차이가 있다.👽
✔ 문제 ✔ 풀이 a, b = map(int, input().split()) print(a+b) ✔ 후기 파이썬 map 함수를 사용해서 a, b의 입력값을 받았다. 개인적으로 띄어쓰기로 나누어진 여러 변수들을 입력받을 때에는 주로 map(int, input().split())을 사용한다.
✔ 문제 ✔ 풀이 1. print 함수 두 번 사용하기 print("강한친구 대한육군") print("강한친구 대한육군") 2. 반복문 사용하기 for i in range(2): print("강한친구 대한육군") ✔ 후기 print 함수를 두 번 사용하느냐 아니면 for문을 사용해서 print 함수를 한 번만 사용하느냐의 문제인 것 같다. 사실 for문 보다 print 함수 두 번 사용하는 게 나한테는 더 간편했다 (〃⌒▽⌒〃)ゝ
✔ 문제 조건 ✔ 풀이 print("Hello World!") ✔ 후기 어떤 언어를 배우든 간에 가장 처음 배우게 되는 Hello World! 출력하기다. 파이썬은 출력 함수가 print() 임을 알고 있다면 쉽게 풀 수 있다.
A. 배열과 좌표 평면은 좌표 측에서 차이가 있기 때문이다. 배열은 x좌표를 위에서 아래로, y좌표를 왼쪽에서 오른쪽으로 값을 증가시킨다. 하지만 좌표 평면에서는 x좌표는 왼쪽에서 오른쪽으로, y좌표를 아래에서 위로 값이 증가된다. 즉, 일반 좌표 평면에서 x축이 열이고, y축이 행이라 생각해야한다. 2차원 배열을 사용하여 좌표 평면처럼 문제를 풀 수 있지만 좌표와 2차원 배열 사이에서 x,y 인자가 증감되는 방식이 다르기 때문에 (x,y)를 (y,x)로 받아 dfs를 풀 수 있다. 참고 https://velog.io/@peanut_/boj-s1-1743-%EC%9D%8C%EC%8B%9D%EB%AC%BC-%ED%94%BC%ED%95%98%EA%B8%B0 [boj] (s1) 1743 음식물 피하기 ✅ DF..
그래프의 탐색 그래프 탐색은 가장 기본적인 연산으로서 하나의 정점으로부터 시작하여 차례대로 모든 정점들을 한 번씩 방문하는 것이다. Ex) 전자 회로에서 특정 단자와 단자가 서로 연결되어 있는지 연결되어 있지 않은지 너비 우선 탐색(BFS: Breath First Search) 너비 우선 탐색이란? 너비 우선 탐색(BFS)은 시작 정점으로부터 가까운 정점을 먼저 방문하고 멀리 떨어져 있는 정점을 나중에 방문하는 순회 기법이다. 이러한 그래프가 있을 경우 BFS로 어떤 순서가 나오는지 확인해보자. 그래프의 시작 정점인 1에서 시작하여 v(1)을 방문한 후 v(1)에 인접한 정점 v(2)와 v(3)을 방문한 후 v(1)에 더 이상 인접한 간선이 없으므로 해당 단계는 종료된다. 다음에 정점 v(2)와 v(3)..
그래프의 탐색 그래프 탐색은 가장 기본적인 연산으로서 하나의 정점으로부터 시작하여 차례대로 모든 정점들을 한 번씩 방문하는 것이다. Ex) 전자 회로에서 특정 단자와 단자가 서로 연결되어 있는지 연결되어 있지 않은지 깊이 우선 탐색(DFS: Depth First Search) 깊이 우선 탐색이란? 깊이 우선 탐색(DFS)은 시작 정점에서 한 방향으로 계속 가다가 더 이상 갈 수 없게 되면 다시 가장 가까운 갈림길로 돌아와서 다른 방향으로 다시 탐색을 진행하는 방법과 유사하다. 이와 같은 그래프가 있을 경우 DFS는 한 방향으로 진행된다. 그래프의 시작 정점에서 출발하여 시작 정점 v (1)를 방문하였다고 표시한다. 이어서 v에 인접한 정점들 중에서 아직 방문하지 않은 정점 u (2)를 선택한다. 만약 그..
힙(Heap) 히프는 완전이진트리 기반 자료구조이다. 여러 개의 값들 중에서 가장 큰 값이나 가장 작은 값을 빠르게 찾아내도록 만들어진 자료구조이다. 부모 노드의 키 값이 자식 노드의 키 값보다 항상 큰 이진트리를 뜻한다. key(부모노드) ≥ key(자식노드) 조건을 항상 성립한다. 노드의 인덱스 배열로 구현 시 0번째 인덱스가 아니라 1번째 인덱스에서부터 시작된다. 왼쪽 자식의 인덱스 = (부모의 인덱스) * 2 오른쪽 자식의 인덱스 = (부모의 인덱스) * 2 + 1 부모의 인덱스 = (자식의 인덱스) / 2 힙 트리 힙 트리는 중복된 값을 허용한다. 힙 트리가 이닌 예 완전 이진 트리가 아니기 때문에 힙 트리는 아니다. 힙 종류 최대 힙(max heap) 부모 노드의 키값이 자식 노드의 키값보다 ..
합병 정렬 하나의 리스트를 두 개의 균등한 크기로 분할하고 분할된 부분 리스트를 정렬한 다음, 두 개의 정렬된 부분 리스트를 합하여 전체가 정렬된 리스트를 얻는다. 분할 정복(divide and conquer) 기법에 바탕을 두고 있는 정렬이다. 즉 하나의 리스트를 2개의 작은 문제로 분리하고 각각을 해결한 다음, 결과를 모아서 원래의 문제를 해결한다. 분리된 문제가 해결되지 않는다면 분할 정복 문제를 반복하여 적용한다. (순환 호출) 합병 정렬 단계 분할(Divide): 입력 배열을 같은 크기의 2개의 부분 배열로 분할한다. 정복(Conquer): 부분 배열을 정렬한다. 부분 배열의 크기가 충분히 작지 않으면 순환 호출을 이용하여 다시 분할 정복 기법을 적용한다. 결합(Combine): 정렬된 부분 배..