728x90 반응형 Programmers180 [프로그래머스] 최고의 집합 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 각 집합을 구하고 해당 집합에서 원소의 곱이 최고인 집합을 구하면 된다. 여기서 각 원소의 곱이 최대이려면 각 원소의 크기가 최대한 서로 비슷해야 한다. 하여 각 원소의 값은 우선 구하고자 하는 합을 원소의 개수로 나눈 몫의 결과를 우선 저장하고 만약 그 합이 원하는 합의 값보다 작을 수 있으므로 각 원소에 합을 원소의 개수로 나눈 나머지만큼 분배하여 더해주면 해당 집합이 최고의 집합이 된다. 만약 자연수 개수가 원소의 합보다 크면 if (n > s) 제일 작은 자연.. 2023. 8. 4. [프로그래머스] 전화번호 목록 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 전화번호가 다른 전화번호의 접두사가 되는지 판별하는 문제입니다. 접두사가 되려면 전화번호의 앞 문자부터 일치해야 합니다. 하여 전화번호를 문자열 형태로 정렬하게 되면 1~9를 사전정렬하듯 오름차순으로 정렬됩니다. 정렬한 전화번호를 앞에서부터 해당 전화번호의 다음 전화번호와 비교하여 접두사인지 아닌지를 판별하면 되는데 여기서 다음 전화번호 하나만 비교하면 되는 이유는 전화번호를 문자열 형태로 정렬했기 때문입니다. 문자열 형태로 정렬했기 때문에 뒤 전화번호는 이전 전화번.. 2023. 8. 3. [프로그래머스] 덧칠하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 현재 벽의 상태를 저장할 변수를 만들고 True로 초기화한다. result = [True] * n 칠해야 하는 구역의 번호를 하나씩 추출하여 for i in section 해당 구역을 칠하지 않은 것으로 변경한다. result[i - 1] = False 칠해야 하는 구역의 번호를 하나씩 추출하여 for i in section 만약 해당 구역이 아직 칠해지지 않았다면 if (not result[i - 1]) 칠해야 하므로 칠하는 횟수를 1 증가시킨다. answer += 1 그리고 .. 2023. 8. 2. [프로그래머스] 실패율 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 각 스테이지 별로 실패하는 사람의 수를 세어 현재 스테이지 별 남은 사람의 수를 나눠주면 실패율을 구할 수 있다. 구한 실패율을 각각 저장하고 실패율을 기준으로 내림차순으로 정렬하여 해당 스테이지 번호를 출력하면 된다. 처음 사용자의 수를 저장한다. size = len(stages) 각 스테이지별로 실패율을 저장할 딕셔너리를 생성한다. d = {} 각 스테이지 번호를 하나씩 지정하여 for i in range(1, N + 1) 만약 해당 스테이지를 실패하는 사람이 없.. 2023. 8. 1. [프로그래머스] 타겟 넘버 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 각 수마다 -, + 두 가지 경우의 수가 존재한다. 따라서 총 (2 ** 숫자의 개수) 가지의 경우의 수가 나온다. 하여 모든 경우의 수를 구하고 이를 하나씩 확인하여 각 수의 합을 구한 뒤, 해당 합이 타겟 넘버와 같은지 비교하는 방식으로 문제를 해결하였다. 각 경우의 수를 구할 때 appendleft() 함수를 사용하기 위해 deque 모듈을 불러온다. from collections import deque 모든 경우를 저장할 리스트를 생성한다. graph = list() 모든.. 2023. 7. 31. [프로그래머스] 이중우선순위큐 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 deque 자료구조를 사용하기 위해 deque 모듈을 불러온다. from collections import deque deque 자료구조를 사용해 큐를 생성한다. queue = deque() 문자열 배열을 하나씩 추출하며 for i in operations 문자열을 공백을 기준으로 분리하여 리스트로 저장한다. li = list(i.split()) 만약 명령어가 I로 시작하면 if (li[0] == "I") 값을 정수로 큐에 추가한다. queue.append(int(li[1])) .. 2023. 7. 30. [프로그래머스] 정수 삼각형 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 올 수 있는 이전의 길의 결과 중 가장 최댓값을 계속 적으로 선택하여 오면 된다. 하여 처음부터 다음 길을 갈 때 다음 길에 지금까지 온 길의 합을 계속 저장하고, 마지막에 도착했을 때 마지막 길들 중 최댓값을 구하면 해결되는 문제이다. 이전의 길의 결과를 저장할 리스트를 생성한다. result = list() 제일 처음 출발점의 값을 추가한다. result.append(triangle[0]) 이전 값은 처음부터 마지막 전까지 길의 값을 추출해야 한다. for i i.. 2023. 7. 29. [프로그래머스] 피로도 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제의 던전의 최대 개수는 8개로 그렇게 많지가 않다. 하여 입력받은 던전에서 가능한 모든 순열의 결과를 구하고 이를 하나씩 불러오며 탐험 가능한 던전의 개수를 구한다. 모든 경우에서 탐험 가능한 던전의 개수를 구하면 최대 탐험 던전의 개수를 반환하면 된다. 파이썬에서는 리스트의 순열 조합의 경우를 구해주는 permutstions 함수가 있는데 이를 사용하기 위해 permutations 모듈을 불러온다. from itertools import permutations 모든 순.. 2023. 7. 28. [프로그래머스] [1차] 뉴스 클러스터링 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 마지막 65536을 곱한 후 소수점 아래를 버림 할 때 floor() 함수를 사용하므로 math 모듈을 불러온다. import math 첫 번째 문자열의 다중집합 원소를 저장할 리스트를 생성한다. li1 = list() 인덱스 1번 원소부터 마지막 원소까지 살펴보며 for i in range(1, len(str1)) 앞 글자를 포함해 두 글자씩 끊어 저장한다. word = str1[i - 1] + str1[i] 만약 저장한 글자가 영문자로만 구성되어 있으면 if (word.isa.. 2023. 7. 27. [프로그래머스] 프로세스 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 프로세스 중요도가 제일 큰 것부터 실행되어야 하므로 중요도가 제일 큰 프로세스를 찾아 실행 시작 위치를 저장한다. place = priorities.index(max(priorities)) 원하는 답을 구할 때 프로그램을 중단하기 위해 무한 반복문을 사용한다. while (True) 중요도가 가장 큰 프로세스의 중요도 값을 저장한다. value = max(priorities) 만약 현재 실행할 순서의 프로세스의 중요도가 가장 큰 중요도이면 if (priorities[place] .. 2023. 7. 26. 이전 1 ··· 7 8 9 10 11 12 13 ··· 18 다음 728x90 반응형