목록알고리즘 (71)
우당탕탕 개발일지

💡문제 링크https://www.acmicpc.net/problem/1138 💡문제 분석 요약문제N명의 사람들은 매일 아침 한 줄로 선다. 이 사람들은 자리를 마음대로 서지 못하고 오민식의 지시대로 선다.어느 날 사람들은 오민식이 사람들이 줄 서는 위치를 기록해 놓는다는 것을 알았다. 그리고 아침에 자기가 기록해 놓은 것과 사람들이 줄을 선 위치가 맞는지 확인한다.사람들은 자기보다 큰 사람이 왼쪽에 몇 명 있었는지만을 기억한다. N명의 사람이 있고, 사람들의 키는 1부터 N까지 모두 다르다.각 사람들이 기억하는 정보가 주어질 때, 줄을 어떻게 서야 하는지 출력하는 프로그램을 작성하시오.입력첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례..
💡문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 💡문제 분석 요약numbers 리스트 속 숫자들을 더하거나 빼서 target 숫자를 만들 수 있는 경우의 수를 출력해야 한다. 💡알고리즘 설계 작은 문제로 큰 문제를 해결하는 방안, 즉 재귀함수를 사용하는 코드를 생각했다.근데 재귀함수를 어떻게 짜야겠다~라는 설계는 머릿속으로 다 되었는데, 코드 구현이 잘 안 되어서 다른 풀이를 참고하였다. 💡코드 def solution(numbe..
💡문제 링크https://school.programmers.co.kr/learn/courses/30/parts/12230 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 💡문제 분석 요약이것도 진짜 뭔 기법 이런 게 아니라 그냥 빡 구현숫자카드를 뽑은 뒤, 그 숫자카드로 만들 수 있는 소수를 만드는 문제이다.숫자카드는 numbers라는 변수로, 문자열 형태로 주어진다. 💡알고리즘 설계1. numbers 문자열을 리스트로 만든다.예. "123" -> [1, 2, 3]2. 순열을 이용해서 만들 수 있는 모든 경우의 수를 만든다.3. 중복은 제거한다.4. 소..
💡문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/42584# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 💡문제 분석 요약 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 💡알고리즘 설계그냥 빡구현으로 풀었다!나보다 작은 수가 몇 번째 인덱스에 나오는지가 관건!이중 반복문을 이용했고, 이중문 안에서 a를 1만큼씩 일단 더하고,만약에 prices[i] > pr..
💡문제 링크https://www.acmicpc.net/problem/5568 💡문제 분석 요약 n개의 숫자들 중에서 k개를 가로로 이어서 만들 수 있는 숫자조합의 개수를 구하는 문제이다.순서가 상관이 있으므로 combinations가 아닌 permutations를 사용한다.💡알고리즘 설계순열을 이용하는 문제1. 카드 숫자들을 card 리스트에 넣는다.2. card에서 k개의 원소를 순열로 뽑은 후 만들어진 숫자를 정수로 변환한 뒤 int_list에 넣는다.3. set() 함수를 이용하여 int_list에서 중복을 제거한 뒤, 리스트의 길이를 구해 정수의 개수를 구한다.💡코드from itertools import permutations# inputn = int(input())k = int(input..

💡문제 링크https://www.acmicpc.net/problem/2217 💡문제 분석 요약1. 로프의 개수 n2. 각 로프가 버틸 수 있는 무게 제시3. 로프 여러 개로 하나의 물체를 들 수 있음4. 모든 로프를 사용할 필요 없고, 임의로 몇 개의 로프만 사용해도 된다.5. k개의 로프를 선택하면, 각각의 로프에는 모두 고르게 w/k 만큼의 중량이 걸리게 된다.6. w/k의 최댓값을 구하는 문제! 💡알고리즘 설계1. for문을 사용해서 모든 로프가 버틸 수 있는 무게 정보를 rope 리스트에 담기2. rope 리스트를 오름차순으로 정렬3. rope 리스트를 앞에서부터 탐색하며 최대 중량을 찾기4. 최대 중량 출력 💡코드n = int(input())rope = []for _ in range(n)..