본문 바로가기

728x90
반응형

알고리즘

(31)
[ Python ] - 7의 개수(120912) 문제 설명 머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요. 제한사항 1 ≤ array의 길이 ≤ 100 0 ≤ array의 원소 ≤ 100,000 입출력 예 solution.py def solution(array): # List comprehension을 이용하여 문자 "7"의 개수를 List로 만들어 sum 함수로 모두 더해 리턴 return sum([str(num).count("7") for num in array])
[ Python ] - 특이한 정렬(120880) [ Python ] - 등수 매기기(120882) 문제 설명 정수 n을 기준으로 n과 가까운 수부터 정렬하려고 합니다. 이때 n으로부터의 거리가 같다면 더 큰 수를 앞에 오도록 배치합니다. 정수가 담긴 배열 numlist와 정수 n이 주어질 때 numlist의 원소를 n으로부터 가까운 순서대로 정렬한 배열을 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ n ≤ 10,000 1 ≤ numlist의 원소 ≤ 10,000 1 ≤ numlist의 길이 ≤ 100 numlist는 중복된 원소를 갖지 않습니다. 입출력 예 solution.py def solution(numlist, n): # numlist의 각 요소와 n의 차의 절대값을 lambda 식을 이용해 1번째 요소로 sorting..
[ Python ] - 등수 매기기(120882) 문제 설명 영어 점수와 수학 점수의 평균 점수를 기준으로 학생들의 등수를 매기려고 합니다. 영어 점수와 수학 점수를 담은 2차원 정수 배열 score가 주어질 때, 영어 점수와 수학 점수의 평균을 기준으로 매긴 등수를 담은 배열을 return하도록 solution 함수를 완성해주세요. 제한 사항 0 ≤ score[0], score[1] ≤ 100 1 ≤ score의 길이 ≤ 10 score의 원소 길이는 2입니다. score는 중복된 원소를 갖지 않습니다. 입출력 예 입출력 예 설명 입출력 예 #1 평균은 각각 75, 70, 55, 65 이므로 등수를 매겨 [1, 2, 4, 3]을 return합니다. 입출력 예 #2 평균은 각각 75, 75, 40, 95, 95, 100, 20 이므로 [4, 4, 6, ..
[ Python ] - 문자열 밀기(120921) 문제설명 문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 A와 B가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 밀어야 하는 최소 횟수를 return하고 밀어서 B가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요. 제한사항 0 < A의 길이 = B의 길이 < 100 A, B 는 알파벳 소문자로 이루어져 있습니다. 입출력 예 solution.py def solution(A, B): answer = [] # A를 회전시켜 B와 같게 만들 수 있는 회전 횟수를 저장할 리스트 if A == B: # A와 B가 이미 같은 경우, 회전할 필요가 없으므로 0을 반..
[ Python ] - 유한소수 판별하기(120878) 문제 설명 영어 점수와 수학 점수의 평균 점수를 기준으로 학생들의 등수를 매기려고 합니다. 영어 점수와 수학 점수를 담은 2차원 정수 배열 score가 주어질 때, 영어 점수와 수학 점수의 평균을 기준으로 매긴 등수를 담은 배열을 return하도록 solution 함수를 완성해주세요. 제한사항 - 0 ≤ score[0], - score[1] ≤ 100 - 1 ≤ score의 길이 ≤ 10 - score의 원소 길이는 2입니다. - score는 중복된 원소를 갖지 않습니다. 입출력 예 score result [[80, 70], [90, 50], [40, 70], [50, 80]] [1, 2, 4, 3] [[80, 70], [70, 80], [30, 50], [90, 100], [100, 90], [100,..
시간 복잡도와 Big O 표기법 프로그래밍에서 효율적인 알고리즘을 선택하고 개발하는 것은 소프트웨어의 성능을 극대화하는 핵심 요소 중 하나입니다. 이 과정에서 가장 중요한 개념 중 하나가 바로 '시간 복잡도'입니다. 시간 복잡도는 알고리즘이 문제를 해결하는 데 얼마나 많은 시간이 소요되는지를 추정할 수 있는 지표로, 알고리즘의 효율성을 판단하는 데 필수적인 요소 입니다. Big O 표기법은 시간 복잡도를 표현하는 가장 일반적인 방법입니다. 이 표기법은 입력 크기에 따라 알고리즘의 실행 시간이 어떻게 변화하는지를 수학적으로 표현하며, 프로그래머들이 다양한 알고리즘을 비교하고 최적의 접근 방식을 선택하는 데 도움을 줍니다. O(log n), O(1) O(n) O(n log n) O(n^2) O(2^n) O(n!) 연산 횟수 요소 ${O(1..
[ Python ] 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 문제동혁이는 오래된 창고를 뒤지다가 낡은 체스판과 피스를 발견했다.체스판의 먼지를 털어내고 걸레로 닦으니 그럭저럭 쓸만한 체스판이 되었다. 하지만, 검정색 피스는 모두 있었으나, 흰색 피스는 개수가 올바르지 않았다.체스는 총 16개의 피스를 사용하며, 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개로 구성되어 있다.동혁이가 발견한 흰색 피스의 개수가 주어졌을 때, 몇 개를 더하거나 빼야 올바른 세트가 되는지 구하는 프로그램을 작성하시오.입력첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다.출력첫째 줄에 입력에서 주어진 순서대로 몇 개의 피스를 더하거나 빼야 되는지를 출력한다. 만약 수가 양수..

728x90
반응형