알고리즘
-
[Python] programmers 주차요금계산알고리즘/카카오기출 2022. 1. 22. 12:38
1. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/92341 코딩테스트 연습 - 주차 요금 계산 [180, 5000, 10, 600] ["05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT"] [14600, 34400, 5000] programmers.co.kr 2. 문제 요약 차량 번호가 작은 자동차부터 청구할 주차 요금을 차례대로 정수 배열에 담아서 return 출차된 내역이 없는 경우, 23:59에 출차된 것으로 간주 초과..
-
[Python] programmers 신고 결과 받기알고리즘/카카오기출 2022. 1. 22. 12:00
1. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 2. 문제 요약 정지 기준이 되는 신고 횟수 k가 매개변수로 주어질 때, 각 유저별로 처리 결과 메일을 받은 횟수를 배열에 담아 return 3. 아이디어 정리 누가 누구를 신고했는지 dict 담기 & 신고당한 횟수 세기 이용자별로 자신이 신고한 사람이 k번 이상이면 처리된 횟수 + 1 4. 문제 풀이 4-1. 내 풀이 from colle..
-
[Python] 백준 14890 경사로알고리즘/삼성 역량 문제 2022. 1. 16. 12:26
1. 문제 링크 https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 2. 문제 요약 총 2n개의 길이 존재할 때, 지나갈 수 있는 길의 개수를 출력한다. 낮은 칸과 높은 칸의 차이는 1이고, 낮은 칸에 경사로를 L길이만큼 설치해야 한다. 3. 아이디어 정리 한 줄 씩 확인해야하기 때문에 한줄 기준으로 지나갈 수 있는 길인지 확인하는 함수를 작성한다. 지나갈 수 있는지 확인하는 함수는 아래 로직을 따른다. 이전 칸과 현재 칸이 1칸 높이 이상이면 False 현재 높이 < ..
-
[Python] 백준 23290 마법사 상어와 복제알고리즘/삼성 역량 문제 2022. 1. 8. 22:40
1. 문제 링크 https://www.acmicpc.net/problem/23290 23290번: 마법사 상어와 복제 첫째 줄에 물고기의 수 M, 상어가 마법을 연습한 횟수 S가 주어진다. 둘째 줄부터 M개의 줄에는 물고기의 정보 fx, fy, d가 주어진다. (fx, fy)는 물고기의 위치를 의미하고, d는 방향을 의미한다. 방향 www.acmicpc.net 2. 문제 요약 1. 모든 물고기 복제 2. 물고기 이동 상어가 있는 칸, 물고기 냄새 칸, 벗어나는 칸 x 45도 반시계 회전 후 이동. 이동 못하는 경우 그대로 3. 상어 이동 제외되는 물고기 수가 많고 > 이동 방법 사전 순 이동하게 됨 상어가 이동한 곳은 물고기가 있으면 물고기 냄새가 생김 4. 2번 전 물고기 냄새 사라짐 5. 복제 마법 ..
-
[Python] 백준 11404 플로이드알고리즘/문제풀이 2022. 1. 8. 22:38
1. 문제 링크 https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 2. 문제 요약 a → b로 가는 비용의 최솟값 모두 구하기 3. 아이디어 정리 플로이드 와샬. 모든 정점 최단 거리 구하기 참고 - 플로이드 와샬 💡 모든 노드에서 다른 모든 노드까지의 최단 경로를 모두 계산한다. - 특정 노드를 거쳐 가는 경우 사용 플로이드 워셜 점화식 각 단계마다 특정한 노드 k를 거쳐 가는 경우를 확인한다. a에서 b로 가는 최단 거리, a에서 k를 거쳐 ..
-
[Python] 백준 17135 캐슬 디펜스알고리즘/문제풀이 2022. 1. 1. 16:46
1. 문제 링크 https://www.acmicpc.net/problem/17135 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net 2. 문제 요약 3명 궁수 배치 적 공격: 거리가 D 이하인 적 중에서 가장 가까운 적이고, 그러한 적이 여럿일 경우에는 가장 왼쪽에 있는 적을 공격한다. 적 아래로 한칸 이동 모든 적이 없으면 끝! 출력: 궁수의 공격으로 제거할 수 있는 적의 최대 수 3. 아이디어 정리 구현 문제 3명 궁수 배치 ⇒ 삼성 문제라서 combinations 함수를 직접 구현하였다.⇒ 삼성 코테는 지원 안 함 ..
-
[Python] 백준 2252 줄세우기알고리즘/문제풀이 2021. 12. 15. 18:04
1. 문제 링크 https://www.acmicpc.net/problem/2252 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net 2. 문제 요약 학생들을 키 순서대로 줄을 세운 결과를 출력한다. 3. 아이디어 정리 위상 정렬 진입 차수가 0인 모든 노드에 큐 넣기 큐가 빌 때까지 반복 큐에서 한 개 빼고 결과에 넣기 큐에서 원소를 꺼내 나가는 간선 제거 새롭게 진입차수가 0이 된 노드에 큐 넣기 4. 문제 풀이 4-1. 내풀이 import sys from colle..
-
[Python] 백준 2623 음악프로그램알고리즘/문제풀이 2021. 12. 15. 17:58
1. 문제 링크 https://www.acmicpc.net/problem/2623 2623번: 음악프로그램 첫째 줄에는 가수의 수 N과 보조 PD의 수 M이 주어진다. 가수는 번호 1, 2,…,N 으로 표시한다. 둘째 줄부터 각 보조 PD가 정한 순서들이 한 줄에 하나씩 나온다. 각 줄의 맨 앞에는 보조 PD가 담당한 www.acmicpc.net 2. 문제 요약 PD들이 만든 가수 순서 주어질 때, 전체 가수 순서를 정하여 순서를 출력한다. 3. 아이디어 정리 위상 정렬 진입차수가 0인 모든 노드에 큐 넣기 큐가 빌 때까지 반복 큐에서 한 개 빼고 결과에 넣기 큐에서 원소를 꺼내 나가는 간선 제거 새롭게 진입차수가 0이 된 노드에 큐 넣기 4. 문제 풀이 4-1. 내풀이 import sys from co..