일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 피아노체조 파이썬
- 파이썬데이터분석라이브러리
- 파이썬 평범한배낭
- 프로그래머스
- MongoDB
- 백준
- MySQL완전삭제
- 백준 피아노체조
- 백준 예산
- 도커 컨테이너
- 장애물인식프로그램 파이썬
- express
- 백준 점프 파이썬
- jenkins
- 백준 점프
- 백준 평범한배낭
- CRUD
- 백준 전쟁-전투
- 백준 등수매기기
- 백준 A->B
- 소프티어 장애물인식프로그램
- 소프티어 지도자동구축
- express mongodb
- 1987파이썬
- 백준 바이러스
- 금고털이 파이썬
- 등수매기기 파이썬
- 지도자동구축 파이썬
- 백준 전쟁 파이썬
- 백준알파벳파이썬
- Today
- Total
목록Algorithms/프로그래머스 (40)
바위 뚫는중
3️⃣ 여행경로 https://school.programmers.co.kr/learn/courses/30/lessons/43164 💡 아이디어 ICN 공항에서 출발하여 공항 경로로 이동하는 것은 알겠는데, 문제는 가능한 경로가 2개 이상일 때 알파벳 순서가 앞서는 경로를 return하는 것을 어떻게 처리해줘야할지 전혀 감이안왔다. 예외를 고려하지 않고 BFS로 이렇게 생각했다. 그러나 각종 예외에 BFS로 어떻게 처리해야할지 난감해서 DFS로 방향을 틀었다 📝 풀이 생각을 바꿔보니 그냥 알파벳 순으로 미리 정렬하고 탐색하면 됐다. DFS로 푸는게 너무 어려웠다.. from collections import deque def solution(tickets): answer = [] for t in ticke..

3️⃣정수삼각형 https://school.programmers.co.kr/learn/courses/30/lessons/43105 💡 아이디어 가장 꼭대기에서 바닥까지 이동하고, 좌우 대각선 방향으로만 이동할 수 있다는 것을 이용하여 규칙을 찾았다. 각줄의 첫번째 수는 바로 직전의 첫번째 수를 이어받고, 마지막 수는 직전의 마지막 수를 이어받는다 그리고 나머지 수들은 대각선 좌우로 더 큰 값을 받는다 📝 풀이 def solution(triangle): for i in range(1, len(triangle)): # 둘째 줄부터 끝까지 for j in range(i+1): if j == 0: # 첫번째 수 triangle[i][j] += triangle[i-1][j] elif j == i: # 마지막 수 ..
2️⃣ 프로세스 문제 운영체제의 역할 중 하나는 컴퓨터 시스템의 자원을 효율적으로 관리하는 것입니다. 이 문제에서는 운영체제가 다음 규칙에 따라 프로세스를 관리할 경우 특정 프로세스가 몇 번째로 실행되는지 알아내면 됩니다. 1. 실행 대기 큐(Queue)에서 대기중인 프로세스 하나를 꺼냅니다. 2. 큐에 대기중인 프로세스 중 우선순위가 더 높은 프로세스가 있다면 방금 꺼낸 프로세스를 다시 큐에 넣습니다. 3. 만약 그런 프로세스가 없다면 방금 꺼낸 프로세스를 실행합니다. 3.1 한 번 실행한 프로세스는 다시 큐에 넣지 않고 그대로 종료됩니다. 예를 들어 프로세스 4개 [A, B, C, D]가 순서대로 실행 대기 큐에 들어있고, 우선순위가 [2, 1, 3, 2]라면 [C, D, A, B] 순으로 실행하게 ..
2️⃣ 주식가격 문제 설명 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. prices의 길이는 2 이상 100,000 이하입니다. 입출력 예 prices return [1, 2, 3, 2, 3] [4, 3, 1, 1, 0] 입출력 예 설명 1초 시점의 ₩1은 끝까지 가격이 떨어지지 않았습니다. 2초 시점의 ₩2은 끝까지 가격이 떨어지지 않았습니다. 3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다. 4초 시점의 ₩2은 1초간 가격이 떨어지지 않았습니다. 5..
3️⃣ 단어 변환 문제 설명 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. 2. words에 있는 단어로만 변환할 수 있습니다. 예를 들어 begin이 "hit", target가 "cog", words가 ["hot","dot","dog","lot","log","cog"]라면 "hit" -> "hot" -> "dot" -> "dog" -> "cog"와 같이 4단계를 거쳐 변환할 수 있습니다. 두 개의 단어 begin, target과 단어의 집합 words가 매개변수로 주어질 때, 최소 몇 단계의 과정을 거쳐 begin..
1️⃣ 기능개발 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42586?language=python3 💡 아이디어 enumerate로 인덱스와 요소를 함께 반복해서 모든 기능을 1일씩 작업하고, 맨 앞 작업물이 100인게 있다면 카운트를 추가해준다 이떄 맨 앞이 100인게 여러개라면 여러개, 아니라면 하나만 출력하도록 할 것 📝 풀이 파이썬 array의 요소 삭제 del : 인덱스로 삭제 remove( ) 함수 : 값으로 삭제 def solution(progresses, speeds): result = [] # 각 배포마다 완료된 작업 수를 저장할 리스트 while speeds: # 모든 작업 1일씩 업데이트 for idx, speed in..
1️⃣ 모의고사 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42840?language=python3 💡 아이디어 말그대로 완전탐색을 해준다! 인덱스 순서에 유의하며 문제를 풀었다. 📝 풀이 나머지를 활용해서 인덱스를 구하였고, dict를 사용하여 append 해주었다. 다소 비효율적이고 매우 풀어썼음 def solution(answers): answer = [] a = [1, 2, 3, 4, 5] b = [2, 1, 2, 3, 2, 4, 2, 5] c = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] aa = 0 bb = 0 cc = 0 for i in range(len(answers)): if a[(i + 1) % len(a) ..
1️⃣ 성격 유형 검사하기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/118666 💡 아이디어 survey choices result ["AN", "CF", "MJ", "RT", "NA"] [5, 3, 2, 7, 5] "TCMA" ["TR", "RT", "TR"] [7, 1, 3] "RCJA" 4를 기준으로 두고 생각하면 된다 AN 5인 경우는 5-4 = 1, N 에 1점을 부여하면 된다 (4보다 크면 우측꺼, 작으면 오른쪽 꺼다) CF 3인 경우는 abs(3-4) = 1, C에 1점을 부여하면 된다 즉, 딕셔너리 키 값을 모두 0으로 초기화 해놓고 세팅해 둔후, survey각각의 값에 맞게 value를 더해준다. 📝 풀이 정답 코드 전체..
1️⃣ 추억 점수 문제 https://school.programmers.co.kr/learn/courses/30/lessons/176963 📝 풀이 name과 yearing의 순서 및 길이는 같다 이의 경우 (data(zip(키, 값))) 이렇게 딕셔너리로 선언이 가능하다 또한, 딕셔너리에서 get을 사용할 때 get(”key”, default값)으로 선언하면 키가 없을 때 default 값이 반환된다! from collections import defaultdict def solution(name, yearning, photo): answer = [] info = dict(zip(name, yearning)) print(info) for i in photo: score = 0 for j in i: sc..
무조건 외워둬야 편한 모듈들~ Counter defaultDict 0️⃣ 한 번만 등장한 문자 Python에서 문자열을 정렬할땐 sort() 대신에 sorted() 사용하자!!! Counter : 문자열의 알파벳 개수를 세어준다! from collections import Counter def solution(s): answer = '' cnt = Counter(s) for i in range(len(s)): if cnt[s[i]] == 1: answer += s[i] ans = ''.join(sorted(answer)) return ans 0️⃣ 최빈값 구하기 from collections import defaultdict def solution(array): answer = 0 dd = default..