프로그래머스

    [Python] 입국심사

    문제 참고 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 작성 def solution(n, times): answer = 0 min_value = -1 def binary_search(start, end, n, times, min_value): while start = n: if min_value == -1: min_value = mid else: min_value = min(min_value, mid) end = mid - 1 else: start = mid + 1 return min_value times.sort() end = times[-1] ..

    [Python] 순위

    문제 참고 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 작성 성공 #1 def solution(n, results): answer = 0 INF = int(1e9) graph = [[INF] * (n + 1) for _ in range(n + 1)] for a in range(1, n + 1): for b in range(1, n + 1): if a == b: graph[a][b] = 0 for r in results: graph[r[0]][r[1]] = 1 graph[r[1]][r[0]] = -1 for k in range(1, n + 1): f..

    [Python] 가장 먼 노드

    문제 참고 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 작성 실패 # 1 def solution(n, edge): answer = 0 INF = int(1e9) graph = [[INF] * (n + 1) for _ in range(n + 1)] for a in range(1, n + 1): for b in range(1, n + 1): if a == b: graph[a][b] = 0 for e in edge: graph[e[0]][e[1]] = 1 graph[e[1]][e[0]] = 1 for k in range(1, n + 1): for a i..

    [Python] n^2 배열 자르기

    문제 참고 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 작성 def solution(n, left, right): answer = [] cnt_l = left % n length = right - left + 1 k, cnt = 0, 0 while True: cnt += n if cnt >= left: break else: k += 1 leng = [i for i in range(1, n + 1)] for i in range(0, k): leng[i] = k + 1 for i in range(n): answer += leng if len(answe..

    [Python] 폰켓몬

    문제 참고 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 작성 def solution(nums): answer = 0 num_set = list(set(nums)) half_num = int(len(nums) / 2) if len(num_set) > half_num: answer = half_num else: answer = len(num_set) return answer - nums에 중복되는 폰켓몬을 제거하여 num_set에 저장 - half_num은 최대로 가져갈 수 있는 폰켓몬의 수이다. - 만약 nums의 중복이 적어 half_num보다 많..

    [Python] 소수 찾기

    문제 설명 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 1000000이하의 자연수입니다. 입출력 예 n result 10 4 5 3 코드 작성 def solution(n): num = set(range(2, n + 1)) for i in range(2, int((n ** 0.5)) + 1): if i in num: num -= set(range(2 * i, n + 1, i)) return len(num) - 아리토스테네스의 체를 이용한다. - 가장 큰 수의 제곱근까지만 반복문을 만들어서 배수를 하나씩 지워나가면 된다.

    [Python] 모의고사

    문제 설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작..

    [Python] 소수 만들기

    문제 설명 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. 제한사항 nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다. nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다. 입출력 예 nums result [1, 2, 3, 4] 1 [1, 2, 7, 6, 4] 4 코드 작성 from itertools import combinations def solution(nums): answer = 0 temp_list = lis..