2024/06 19

WIL 1 주차

1주차(사전 캠프 미포함) 현재 나의 수준 현황 HTML, CSS: 인터넷 찾아가면서 만들어가는 정도JS: 필요한 함수만 가져다 쓰는 정도Python: 기본적인 문법 함수 문제 없음. 추후 웹 연동 및 데이터베이스 연동 등 배우는 강의에 따라 달라질 것으로 예상알고리즘: 4주차까지 수강한 내용 바탕으로, 관련 자료구조 및 알고리즘의 로직 이해함. 코드도 혼자 한번씩 따라서 구현.GIT 및 GITHUB: 단 하나도 안됨 2주차 목표 HTML, CSS: 강의내용을 복기하며 HTML 및 CSS 작성에 익숙해지기JS: 필요한 함수의 사용법이나 매개변수등을 파악하기Python: 현황 유지알고리즘: 배운 자료구조 및 알고리즘 코드 구현으로 복습하기GIT 및 GITHUB: 사용방법 및 협업에 쓸 정도까지 수준 올리기..

잡다한 것 2024.06.28

알고리즘 4 (합병 정렬, 힙 정렬)

1. 버블 정렬(이전 글)2. 선택 정렬 (이전 글) 3. 삽입 정렬 (이전 글) 4. 퀵 정렬 (이전 글) 5. 합병 정렬6. 힙 정렬  5. 합병 정렬(Merge Sort): 데이터를 낱개로 쪼갠 후 merge 함수를 이용해 병합하는 방식 5-1 merge함수: 두 정렬된 파일을 하나의 파일로 합쳐 빈 파일에 저장하는 함수A= [1, 2, 3, 5] # 정렬된 배열 AB= [4, 6, 7, 8] # 정렬된 배열 BC= [] # 두 집합을 합칠 빈 배열 C ↓1단계 : [1, 2, 3, 5] ↓ [4, 6, 7, 8] 1과 4를 비교합니다! 1 4 이므로 4을 C 에 넣습니다. C:[1, 2, 3, 4] ..

알고리즘 2024.06.28

알고리즘 3 (버블 정렬, 선택 정렬, 삽입 정렬, 퀵 정렬)

1. 버블 정렬2. 선택 정렬3. 삽입 정렬4. 퀵 정렬5. 합병 정렬(다음 글)6. 힙 정(다음 글)  0. 정렬을 배우는 이유: 데이터 형태에 따른 시간 복잡도를 줄이기 위함.0-1 시간복잡도:버블 정렬, 선택 정렬, 삽입 정렬: O(n^2)퀵 정렬: 최악->O(n^2) / 평균-> O(nlogn)합병 정렬, 힙 정렬: 최악, 평균 -> O(nlogn)1. 버블 정렬(Bubble Sort): 첫 번째 자료와 두 번째 자료를, 두 번째 자료와 세 번째 자료를, … 이런 식으로 (마지막-1)번째 자료와 마지막 자료를 비교하여 교환하면서 자료를 정렬하는 방식. 작은 숫자, 큰 숫자 순서로 있으면 내버려두고 큰 숫자, 작은 숫자 순서로 있으면 둘의 위치를 변경하는 방식 (다음 루프때는 (마지막-1)번째 자료..

알고리즘 2024.06.27

AI 웹 개발 공부 16일 차(본 캠프) 코드 풀이

74. 신고 결과 받기(파이썬)  문제 설명신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다.각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다.신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다.한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다.k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다.유저가 신고한 모든 내용을 취합하여 마지막에 한꺼번에 게시판 이용 정지를 시키면서 정지 메일을 발송합니다.다음은 전체 유저 목록이 ["muzi", "frodo", "apeach", "ne..

문제 풀이 2024.06.26

AI 웹 개발 공부 15일 차(본 캠프) 코드 풀이

73. 공원산책(파이썬) 문제 설명지나다니는 길을 'O', 장애물을 'X'로 나타낸 직사각형 격자 모양의 공원에서 로봇 강아지가 산책을 하려합니다. 산책은 로봇 강아지에 미리 입력된 명령에 따라 진행하며, 명령은 다음과 같은 형식으로 주어집니다.["방향 거리", "방향 거리" … ]예를 들어 "E 5"는 로봇 강아지가 현재 위치에서 동쪽으로 5칸 이동했다는 의미입니다. 로봇 강아지는 명령을 수행하기 전에 다음 두 가지를 먼저 확인합니다.주어진 방향으로 이동할 때 공원을 벗어나는지 확인합니다.주어진 방향으로 이동 중 장애물을 만나는지 확인합니다.위 두 가지중 어느 하나라도 해당된다면, 로봇 강아지는 해당 명령을 무시하고 다음 명령을 수행합니다.공원의 가로 길이가 W, 세로 길이가 H라고 할 때, 공원의 좌..

문제 풀이 2024.06.25

AI 웹 개발 공부 14일 차(본 캠프) 코드 풀이

71. 개인정보 수집 유효기간(파이썬)문제 설명고객의 약관 동의를 얻어서 수집된 1~n번으로 분류되는 개인정보 n개가 있습니다. 약관 종류는 여러 가지 있으며 각 약관마다 개인정보 보관 유효기간이 정해져 있습니다. 당신은 각 개인정보가 어떤 약관으로 수집됐는지 알고 있습니다. 수집된 개인정보는 유효기간 전까지만 보관 가능하며, 유효기간이 지났다면 반드시 파기해야 합니다.예를 들어, A라는 약관의 유효기간이 12 달이고, 2021년 1월 5일에 수집된 개인정보가 A약관으로 수집되었다면 해당 개인정보는 2022년 1월 4일까지 보관 가능하며 2022년 1월 5일부터 파기해야 할 개인정보입니다.당신은 오늘 날짜로 파기해야 할 개인정보 번호들을 구하려 합니다.모든 달은 28일까지 있다고 가정합니다.다음은 오늘 ..

문제 풀이 2024.06.24

파이썬 미로 탈출 경로 찾기 / 순열 생성하기

1. 미로 탈출 경로 찾기문제 설명:N x M 크기의 미로가 주어집니다. 미로는 0과 1로 구성되어 있으며, 0은 이동할 수 없는 벽을 나타내고, 1은 이동할 수 있는 경로를 나타냅니다.시작 위치는 (0, 0)이며, 미로의 출구는 (N-1, M-1)에 위치해 있습니다.최단 경로로 미로를 탈출하는 방법을 찾는 프로그램을 작성하세요. 이동은 상하좌우로만 가능합니다. 요구사항:BFS 알고리즘을 사용하여 미로의 모든 경로를 탐색합니다.시작 위치에서 출구까지의 최단 경로의 길이를 찾아야 합니다.최단 경로의 길이를 반환합니다. 예시 입력:11101101011010111111예시 출력:8시작 위치 (0, 0)에서 출구 (3, 4)까지의 최단 경로의 길이는 8입니다. 예시 입력:1111100001111011000111..

알고리즘 2024.06.20

알고리즘 2 (BFS, 백 트래킹, 이진탐색)

1. 그래프(이전 글)2. DFS(이전 글)3. BFS4. 백트래킹5. 이진탐색 3. BFS: 인접한 노드 중 방문하지 않은 모든 노드들을 저장해두고, 순서대로 넣은 노드를 꺼내서 탐색.큐가 BFS를 구현하는 것에 용이함1. 루트 노드를 큐에 넣는다.2. 현재 큐의 노드를 빼서 visited 에 추가한다.3. 현재 방문한 노드와 인접한 노드 중 방문하지 않은 노드를 큐에 추가한다.4. 2부터 반복한다.5. 큐가 비면 탐색을 종료한다. 3-1. BFS 구현from collections import dequedef bfs_queue(graph, start): visited = [start] q = deque([start]) while q: node = q.popleft() ..

알고리즘 2024.06.17

알고리즘 1 (그래프, DFS)

1. 그래프2. DFS3. BFS(다음 글)4. 백트레킹(다음 글)5. 이진탐색(다음 글)  1. 그래프: 비선형 구조 중 연결 관계에 집중이 되어있는 자료구조  1-1 그래프 용어 정리노드(Node): 연결 관계를 가진 각 데이터를 의미. 정점(Vertex)이라고도 함. 간선(Edge): 노드 간의 관계를 표시한 선.인접 노드(Adjacent Node): 간선으로 직접 연결된 노드(또는 정점) C - D ⎜ B - AA는 연결 관계를 가진 데이터, 노드A와 B는 간선으로 연결됨A와 C는 인접 노드  1-2 그래프의 종류유방향 그래프(Directed Graph): 간선이 방향을 가짐. 간선은 단방향 관계를 나타내며, 각 간선은 한 방향..

알고리즘 2024.06.14

DFS 문제(섬의 개수 구하기)

문제: '1'(육지)과 '0'(물)으로 구성된 지도를 나타내는 m x n 크기의 이진 격자가 주어질 때, 섬의 개수를 반환합니다.섬은 물로 둘러싸여 있으며 인접한 땅을 가로 또는 세로로 연결하여 형성됩니다.(대각선 x) Example 1:Input: grid = [ ["1","1","1","1","0"], ["1","1","0","1","0"], ["1","1","0","0","0"], ["0","0","0","0","0"]]Output: 1Example 2:Input: grid = [ ["1","1","0","0","0"], ["1","1","0","0","0"], ["0","0","1","0","0"], ["0","0","0","1","1"]]Output: 3 1. DFS 스택방식으로 ..

알고리즘 2024.06.14