| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 오픈 어드레싱
- 그래프란
- 그래프 활용예시
- 동적 프로그래밍
- github기본 #github #브랜치 #CLI #CLI입문
- 공 바꾸기 해석
- 코딩
- 백준 공 넣기
- 너비우선탐색 장단점
- 깊이우선탐색
- 공 넣기
- 깊이우선탐색 python
- 공 바꾸기
- 그래프 양방향
- 그래프 무방향성
- 그래프 방향성
- 백준 10810
- 해시테이블
- 공 넣기 해석
- 그래프 유형
- 깊이우선탐색 장단점
- 백준
- 백준 풀이
- 백준 공 바꾸기
- 너비우선탐색 python
- 해시 테이블 체이닝
- 탐욕 알고리즘
- 그래프 코드 구현
- hash function
- 백준 10813
- Today
- Total
목록분류 전체보기 (9)
Data Scientist(DS)
1. 문제 2. 문제 및 예제 해석 3. 코드 1. 문제 문제 링크: https://www.acmicpc.net/problem/10813 2. 문제 및 예제 해석 5 4 1 2 3 4 1 4 2 2 1. 1번부터 n번까지의 바구니가 있다. 2. 각 바구니는 각 번호에 해당하는 공을 가지고 있다. 예) n이 5일 때, 1 2 3 4 5 공을 가지고 있다. 3. m번에 걸쳐 해당 두 개의 바구니 공을 바꾼다. 예) 1 2 -> 1번 바구니에 있던 1번 공을 2번 바구니의 2번 공과 바꾼다. 결과) 2 1 4. 3번을 한 결과 각 바구니에 있는 공의 번호를 출력하시오. 3. 코드 n,m = map(int, input().split()) result = list(range(1,n+1)) for x in rang..
1. 문제 2. 문제 및 예제 해석 3. 코드 1. 문제 문제 링크: https://www.acmicpc.net/problem/10810 하지만 문제가 이해가 잘 안 되어서 몰라서 한참을 읽었다. ^^ (헷갈린 이유: m번 공을 넣는다는게 m번의 횟수로 공을 넣는다는 뜻이다. j번에 해당하는 공을 m번 넣는다는 뜻이다. m번에 해당하는 공을 넣는 것으로 헷갈렸다. 문제 진짜) 나와 같은 사람이 있을 것으로 판단되어 아래 문제를 단위로 쪼개어 해석해 놨다. 2. 문제 및 예제 해석 # 바구니 총 n개 # 가진 공: 1~n번 # 처음 바구니: 공 x # 바구니 조건: 공 1개만 넣을 수 있다. # m번을 거쳐 공을 넣으려고 하는데 # 공을 넣을 바구니 범위를 정한 후 # 정한 바구니에 같은 번호 공을 넣는다..
Keep - 새로운 공모전을 찾아보려고 노력했다. (예시: 나와 관련된 키워드를 취합해서 서치를 지속했다.) - 단계별 계획을 잘 세웠다. (예시: 데이터 이해 - 데이터 전처리 - 모델링 - 예측 각 단계에 대한 세부적 계획을 세움.) - 여러 데이터를 합치려는 시도를 했다. (예시: 날씨 데이터 뿐만 아니라 건물 수에 대한 데이터도 합치고자 함.) - 끝까지 결과물이 좋게 나오기 위해 심혈을 기울였다. (예시: 데이터를 이해하는데 많은 시간을 썼다.) - 어떤 상황이 닥쳐도 포기하는 것이 아니라 끝까지 해내보려고 노력했다. (예시: 코로나 때 몸이 너무 무거워서 침대 위에서 코딩을 했다.) Problem - 계획은 잘 세웠으나 코로나 등의 이유로 계획 실천을 잘 하지 못 했다. - 여러가지 시도를 해..
Dynamic Programming 개념 주어진 문제의 일부를 풀고 그 결과를 재활용하는 방법이다. 하나의 문제를 중복되는 서브 문제로 나누어 푸는 방법. 분할 정복(Divide and Conquer) < 동적 프로그래밍 (Dynamic Programming) 속하는 개념 DP는 중복되는 서브 문제가 있지만(그래서 메모이제이션도 활용 가능) 분할 정복은 분할된 서브문제가 독립적이다. 방법론 메모이제이션 (하향식) 메인 문제를 분할하면서 해결 하는 방법 코드 구현 피보나치 수열을 구하는 방법을 기준으로 비교해보았다. 피보나치 수열: [1,1,2,3,5,8,,,,] 이런식으로 앞의 두개의 항을 더한 수열을 말한다. 첫번쨰와 두번째 항의 경우 1이 들어가는 것이 원칙이다. 메모이제이션은 메인을 분할하고 해결하..
BFS (Breadth First Search) : 너비 우선 탐색 개념 최대한 넓게 탐색하는 것 큐의 개념이 사용된다. 위 이미지를 참조하자면, s - 1 - 2 - 3 - 4 - 5 - 6 - 7 순서로 탐색한다. 활용 최단거리를 구하는 문제 ex) 미로찾기 등 장/단점 장점 무한히 깊은 경로여도 최단 경로를 반드시 찾을 수 있고 최단 경로 찾기에 적합하다. 노드 수가 적고 깊이가 얕을 때 효과적으로 찾을 수 있다. 단점 큐를 이용하기 때문에 노드 수가 많아지면 메모리를 많이 소비한다. 노드 수가 많아지면 탐색할 노드가 많아져 비효율적이다. 코드 구현 # 첫번쨰 방법 def bfs_queue(start_node, bfs_graph): bfs_list = list() queue = list() queu..
개념 정리 1) 그래프 그래프란? 노드와 엣지(간선)으로 이루어진 자료구조. 트리와 다른 점: 계층이 존재하지 않는다. (=루트노드 x) 장점: object간 관계를 표현할 때 유용하다. 예를 들어 SNS나 운송 시스템 같은 경우 적합하다. 그래프 코드 구현 시인접행렬(Adjacency Matrix) 인접리스트 (Adjacency List) 두가지로 구현 가능하다. 인접행렬(Adjacency Matrix) 연결된 여부는 1로 (만약 가중치가 1보다 크면 1보다 큰 값으로) 연결되지 않으면 0으로 표현한다. 메모리 차지가 인접리스트보다 많다. 시간 복잡도 O(n^2) 차지. 노드간 엣지가 존재하는지 찾기 위해서 시간 복잡도가 O(1)으로 인접 리스트보다 좋다. 인접리스트 (Adjacency List) 딕셔..
- 해시테이블은 어떻게 작동될까? 해시 테이블은 key값을 받아 해시함수를 통해 hash key로 바꾼 후, hash key에 해당하는 value값을 넣는다. - 해시함수란? 해시 함수란 key값을 받아 hash key값으로 바꾸어주는 함수를 말한다. - 해시충돌이란 무엇이며 어떻게 처리될까? 해시 충돌이란 해시 테이블에 값을 넣는데 hash key가 중복되어 충돌하는 상황을 말한다. 위 이미지 처럼 John Smith씨와 Sandra Dee씨처럼 말이다. 처리하는 방법으로는 체이닝(chaining)과 오픈 어드레싱(open addressing)이 있다. - 해시테이블이 가득 차면 어떻게 해야할까? 위에서 언급한 해시 충돌을 처리하는 방법인 체이닝과 오픈 어드레싱 방법을 사용하면 된다. 1) 체이닝 * ..
안녕하세요. CNN을 이용한 폐렴 진단을 발표하게 된 입니다.// 먼저 목차를 보여드리겠습니다. 목차 서론 본론 결론 및 한계점 순서로 발표를 진행하겠습니다.// 서론은 데이터를 선정한 이유와 가설입니다. // 데이터를 선정한 이유는 두가지입니다. 첫번째로 제가 관심있는 분야가 헬스케어이기때문입니다. 헬스케어 분야의 회사들은 주로 이미지를 통한 조기 진단을 목표로 하고 있습니다. 따라서 조기 판단을 할 수 있는 데이터 중 폐렴 데이터로 선정하게 되었습니다. 정상적인 폐포의 내부는 기체로 이뤄진 상태이지만 폐렴으로 인해 손상된 폐포에는 염증이 있어 액체 물질로 가득 차 있습니다. 증상에 따른 X-ray 색상 표를 참조해서 말씀드리면 왼쪽의 사진처럼 원래 폐포는 공기 상태로 존재하기 때문에 검은 부분이 많이..