일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준 2309
- easy 딥러닝
- MLP
- 큐
- softeer
- 스택
- 99항해
- 파이썬
- 알고리즘
- 개발자 취업
- 개발자취업
- boj 2309
- BOJ
- 딥러닝
- 해시
- til
- 항해99
- 활성화 함수
- 코딩테스트 준비
- 기능개발
- 프로그래머스
- 혁펜하임
- dfs
- Python
- 99클럽
- 코딩테스트준비
- leetcode
- 구현
- 백준
- python 2309
- Today
- Total
목록전체 글 (101)
동까의 코딩
파이썬 [프로그래머스] - 양과 늑대문제 설명"양과 늑대" 문제는 트리 형태로 구성된 노드에서 양과 늑대가 존재하는 상황에서, 루트 노드부터 시작해 이동하면서최대한 많은 양을 구하는 문제입니다. 각 노드는 0(양)과 1(늑대)로 표시되며, 이동 중 언제나 양의 수가 늑대의 수보다 많아야 합니다.문제의 목표는 가능한 경로들 중, 조건을 만족하면서 최대한 많은 양을 모으는 경우의 양의 수를 구하는 것입니다.문제 접근 방식DFS(깊이 우선 탐색) 활용노드들을 깊이 우선 탐색하면서 현재까지 모은 양(sheeps)과 늑대(wolves)의 수를 관리합니다.방문 배열 사용각 노드의 방문 여부를 추적하여 중복 방문을 방지하고, 다른 경로 탐색을 위해 방문 상태를 초기화합니다.조건 검사DFS 내에서 매번 sheeps >..
파이썬 [프로그래머스] - 네트워크문제 설명프로그래머스의 네트워크 문제는 여러 컴퓨터가 연결되어 있는 네트워크의 개수를 구하는 문제입니다.컴퓨터들의 연결 정보는 2차원 리스트(인접 행렬)로 주어지며,연결된 컴퓨터들은 하나의 네트워크를 구성합니다.문제의 목표는 주어진 컴퓨터들의 연결 정보로부터 총 네트워크의 개수를 찾는 것입니다.문제 접근 방식방문 배열(visit) 생성 각 컴퓨터가 이미 네트워크 탐색에 포함되었는지 확인하기 위해 visit 리스트를 생성합니다.깊이 우선 탐색(DFS) 활용 한 컴퓨터에서 시작하여 연결된 모든 컴퓨터들을 재귀적으로 탐색합니다.탐색 중 방문한 컴퓨터는 visit 리스트를 통해 중복 방문을 방지합니다.네트워크 수 카운팅 아직 방문하지 않은 컴퓨터가 발견되면 DFS를 실행하..
1. DFS를 구현하는 대표적인 두 가지 방법은 재귀 호출을 이용하는 것과 명시적인 스택(Stack) 자료구조를 사용하는 것입니다. 각 구현 방식의 장단점을 비교 설명해주세요1. 재귀 호출을 이용한 DFS장점:간결하고 직관적: 재귀 호출을 사용하면 코드가 간단해지고, DFS의 기본 개념(현재 노드에서 다음 노드로 자연스럽게 진행)을 직관적으로 표현할 수 있습니다.내장 스택 활용: 프로그래밍 언어의 함수 호출 스택을 활용하기 때문에 별도의 자료구조를 구현할 필요가 없습니다.단점:스택 오버플로우 위험: 탐색 깊이가 매우 깊거나 그래프가 크면 함수 호출 스택이 넘칠 수 있습니다.제어의 한계: 재귀 과정 중에 스택 상태를 직접 제어하기 어렵기 때문에, 특정 상황에서 세밀한 제어가 필요한 경우에는 유연성이 떨어질..
파이썬 [프로그래머스] - 가장 큰 수문제 설명프로그래머스의 가장 큰 수 문제는 주어진 숫자 배열을 이어 붙여 만들 수 있는 가장 큰 수를 반환하는 문제입니다.예를 들어, [6, 10, 2]가 주어지면 숫자들을 적절히 이어 붙여 6210을 만드는 것이 목표입니다.문제 접근 방식문자열 변환 주어진 숫자들을 문자열로 변환합니다.정렬 기준 설정 각 숫자 문자열을 반복하여 비교 기준을 만듭니다.예를 들어, 숫자 3은 "333"으로, 숫자 30은 "303030"으로 변환하여 비교합니다.문자열은 첫 인덱스가 같으면 다음 인덱스로 넘어가서 대소비교를 하기 때문에 숫자 '30'이 뒤로 밀립니다.내림차순 정렬 변환된 문자열들을 내림차순으로 정렬하여, 이어 붙였을 때 가장 큰 수가 나오도록 합니다.결과 조합 및 반환..
파이썬 [프로그래머스] - 기능개발문제 설명프로그래머스의 기능개발 문제는 각 작업의 진행 상황(progresses)과 작업 속도(speeds)가 주어졌을 때,작업이 100% 이상 완료되면 배포하는 방식으로, 배포마다 동시에 몇 개의 작업이 완료되는지를 구하는 문제입니다.문제 조건각 작업은 매일 일정한 속도로 진행됩니다.작업은 순서대로 배포되며, 앞 작업이 완료되어야 뒷 작업도 함께 배포될 수 있습니다.한 번의 배포에 여러 작업이 동시에 완료될 수 있습니다.문제 접근 방식시간 시뮬레이션 time 변수를 사용해 경과한 날짜를 추적합니다.완료 조건 체크 각 작업의 진행도는 progress + time * speed로 계산합니다.첫 번째 작업이 100% 이상이면 작업을 제거(pop)하고 배포할 작업의 수(c..
- 지원할 회사 추려서 플래너에 작성하고, 제출일 2일 전까지 제출하기.- 3월 17일 전까지 프로그래머스 알고리즘 고득점 KIT 문제 다 풀고 블로그에 업로드하기.- 알고리즘 정리해서 올리기..- 딥러닝 이론, 실기 더 탄탄하게 다져서 깃허브에 올리기.- 노션 이력서 작성하기.- 해커톤 회고록 작성하기.
베스트 앨범 문제 풀이 및 상세 설명프로그래머스의 베스트 앨범 문제는 각 장르별로 재생 횟수를 기준으로 노래들을 정렬하고, 장르의 총 재생 횟수가 높은 순으로 두 곡씩 선택하여 베스트 앨범을 구성하는 문제입니다.문제 해결 접근 방식문제를 해결하기 위한 주요 단계는 다음과 같습니다:장르별 분류:입력으로 주어진 genres와 plays 리스트를 이용하여, 각 장르에 해당하는 (재생 횟수, 인덱스) 튜플들을 저장합니다. 예를 들어, "pop" 장르에 속하는 노래들의 재생 횟수와 해당 인덱스를 함께 저장합니다.내부 정렬:각 장르별 리스트를 재생 횟수가 높은 순으로 정렬합니다. 만약 재생 횟수가 같은 경우, 인덱스가 작은 순으로 정렬하여 우선순위를 결정합니다.장르 정렬:전체 장르를 해당 장르에 속하는 노래들의..
위장 문제 풀이: 해시맵을 활용한 조합 계산프로그래머스의 의상 문제는 주어진 옷들의 조합을 통해 가능한 경우의 수를 계산하는 문제입니다.각 옷 종류별로 선택할 수 있는 경우의 수는 해당 종류의 옷 개수에 1을 더한 값이며, 모든 경우의 수를 곱한 후, 아무것도 선택하지 않는 경우를 제외한 값을 반환합니다.풀이 과정딕셔너리 생성:입력으로 주어진 clothes 리스트를 순회하며, 옷의 종류를 key로 하고, 해당 종류에 속하는 옷의 이름을 리스트에 저장합니다.조합 계산:각 옷 종류별로 선택할 수 있는 경우의 수는 len(옷 리스트) + 1입니다.이를 모든 옷 종류에 대해 곱한 값을 구합니다.결과 도출:최종적으로 모든 경우의 수에서 아무것도 선택하지 않는 경우(1)를 빼서 결과를 반환합니다.코드 구현def s..